[MySQL优化案例]系列 -- 带函数的查询条件
mysql>explain select * from tbl_name where date_format(EndTime, '%Y-%m-%d') >= '2007-08-08' AND date_format(EndTime, '%Y-%m-%d') set @dt='2007-08-08' ; set @dt1 = '2007-08-09'; mysql>explain select * from tbl_name where EndTime >= @dt AND EndTime前面是全表扫描(1012465条记录),而后面则只检索5054条记录而已。
评论
游客 (未验证)
周一, 2008/10/20 - 12:41
Permalink
EndTime是什么类型?如
EndTime是什么类型?如果是datetime,好像索引不稳定
yejr
周二, 2008/10/21 - 21:55
Permalink
重点不在endtime的类型
重点不在endtime的类型,而是尽管endtime有索引,但是由于第一次查询时,endtime是利用函数进行转换了,因而无法使用索引来检索。
MySQL方案、培训、支持