今天发现一个比较奇怪的问题,特此记录下,今后需待搞明白为什么。
请看下面两个查询语句:
explain select * from loginlog where logindate>'2009-11-26';
explain select * from loginlog where logindate>'2009-11-19';
loginlog表中logindate建有索引,总数据量是600万条。
我发现前一个查询使用到了索引,而第二个查询却是全表扫描。
初步分析是因为第一条语句查询结果量比较小,不到10万,而第二个语句查询的是7天的数据(今天是2009-11-26)
可能是mysql的查询优化器自动根据这个分析来确定是否使用索引。