Tech Neo 创造一个纯粹高质的技术交流平台

MySql Innodb 一条简单sql查询耗时问题

Mysql 同一条sql语句,只是查询条件不一样。
第一次查询结果17W,耗时11s;
第二次查询结果21W,耗时161s。
Duration差不多,Fetch差距和结果数据量不成正比。

17:14:26    select ID from TB1 where DomainID=@DomainID and WorkDate between '2018-05-05' and '2018-05-21'    178854 row(s) returned    0.015 sec / 11.453 sec

17:15:01    select ID from TB1 where DomainID=@DomainID and WorkDate between '2018-05-01' and '2018-05-21'    215679 row(s) returned    0.093 sec / 161.610 sec

请先 登录 后评论

最佳答案 2018-06-14 16:48

mysql的优化器并不完美。在执行第二个sql时,可能优化器认为,使用ix_tb_wdate这个索引的代价比ix_tb_did大。使用ix_tb_wdate这个索引时是索引范围扫描,它的性能也低于ref。

请先 登录 后评论

其它 2 个回答

博问用户

explain 看看执行情况

请先 登录 后评论
博问用户

explain 看执行情况再具体分析

请先 登录 后评论