Ben yaklaşık yaşıyorum. Tabloda 200K satırlar tb_post
, ve her 5 dakikada yakl vardır. 10 yeni uçlar.
Ben satırları almak için aşağıdaki sorguyu kullanıyorum -
SELECT tb_post.ID, tb_post.USER_ID, tb_post.TEXT, tb_post.RATING, tb_post.CREATED_AT,
tb_user.ID, tb_user.NAME
FROM tb_post, tb_user
WHERE tb_post.USER_ID=tb_user.ID
ORDER BY tb_post.RATING DESC
LIMIT 30
Bu sıralı şekilde tüm satırlarını fazla 10sn alıyor.
Aşağıdaki sorgu İZAH raporudur:
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE tb_user ALL PRIMARY NULL NULL NULL 20950 Using temporary; Using filesort 1 SIMPLE tb_post ref tb_post_FI_1 tb_post_FI_1 4 tb_user.id 4
Birkaç girişler:
tb_post.RATING
Float tipitb_post.USER_ID
üzerine dizin yok
Herkes bana bu sorgu optimize etmek ve okuma performansını artırmak gerektiği konusunda birkaç işaretçiler önerebilirsiniz?
PS: Ben veritabanı ölçekleme konularda acemi olduğum. Yani önerileri her türlü bu sorgu özgü yararlı olacaktır.