我得到相當緩慢的性能是一個非常簡單的語句(3-4秒):我應該使用什麼指數?
SELECT col1,col2,col3 FROM table WHERE fname LIKE '%D%' OR fname LIKE '%S%' ORDER BY DATE(bday) DESC LIMIT 0,100
我有指數FNAME,另一對BDAY和FNAME & BDAY甚至是聯合索引。這裏是我的解釋:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE table ALL NULL NULL NULL NULL 95856 Using where; Using filesort
沒有索引將在這裏幫助。我會尋找一個全文搜索解決方案。 MySQL有內置的內容:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html –
@Wiseguy:你爲什麼刪除你的答案?這是一個有效的(可能是最簡單的幫助查詢可以得到)。 –
'order by'是次要的,但是,仍然是一個問題。在一個足夠小的集合上它不會很糟糕,但實際上它應該首先作爲日期類型存儲。 –