我得到相当缓慢的性能是一个非常简单的语句(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'是次要的,但是,仍然是一个问题。在一个足够小的集合上它不会很糟糕,但实际上它应该首先作为日期类型存储。 –