2011-09-23 97 views
2

我的訂單聲明存在索引問題。我有這個疑問女巫乳寧快:按性能問題排序

SELECT name from members where kat = 2 order by date DESC; 

我對成員表的複合指數:

kat_index(kat,date); 

現在我aplication已經改變,我添加了一些這樣的查詢:

SELECT name from members where kat = 2 order by logged_in DESC, status DESC, date DESC; 

現在查詢我慢,因爲它使用filesort。所以問題是...我應該添加什麼類型的索引來滿足這兩個查詢?

回答

4

你應該有兩個指標:

(kat, date) 
(kat, logged_in, status, date) 

每個查詢都將使用最適合該查詢索引。

+0

好:+1。 – Marco

+0

@Marco,強制簡單查詢的索引使它運行速度更慢**,而不是更快。 – Johan

1

您無法使用一個索引涵蓋兩個查詢。您還必須在組合索引上與ORDER BY子句一起構成最左邊的前綴。