MySQL orderby查询效率/索引影响

MySQL Order by 查询效率

遇到问题
 使用 order by 之后查询效率特别慢
sql语句如下:
 -- 注:索引:create_time :Key、  id: Primary Key -- wx_user  6000万条数据 
 select id from wx_user where create_time>='2022-01-29 00:00:00' and create_time<='2022-01-30 00:00:00' order by id limit 1; 
 -- 执行耗时60s+    

Explain:
select_type table type possible_keys key key_len ref row Extra
SIMPLE wx_user index ct PRIMARY 4 null 273 Using where
猜测
order by id 导致where条件的 create_time索引没有使用而使用了主键扫描
解决方案 修改 order by 使用where 条件
select id from wx_user where create_time>='2022-01-29 00:00:00' and create_time<='2022-01-30 00:00:00' order by create_time limit 1;   
Explain:
select_type table type possible_keys key key_len ref row Extra
SIMPLE wx_user range ct ct 5 null 208754 Using where; Using index

explain 参考文档

https://cloud.tencent.com/developer/article/1176479?from=article.detail.1093229

上一篇:find命令总结


下一篇:Linux - vim编辑器,tmux