MySQL 数据库 索引优化

qq_370284518 2019-07-30 05:46:06
现有sql语句:
①select * from tab1 where number = '5' and mode >= 1 and mode <= 21 order by id desc limit 100;

② select * from (select * from tab2 where mode >= 1 and mode <= 21 and name = '5' order by id desc limit 100) A order by id;


请问这两句sql该如何建立索引以达到优化的目的?对于①,我建立了联合索引,key(number,id)但是explain的时候提示没有用到该索引,用的是主键索引。
...全文
186 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
TamoR. 2019-08-07
  • 打赏
  • 举报
回复
使用use index强制使用索引
qq_370284518 2019-08-03
  • 打赏
  • 举报
回复
引用 11 楼 学海无涯回头是岸 的回复:
数据库 认为用二级索引,再回查数据慢
它认为直接用pk索引找到数据,再筛选第二个条件要快
我的数据量很大,那应该是用主键索引呢还是自定义索引?
  • 打赏
  • 举报
回复
数据库 认为用二级索引,再回查数据慢 它认为直接用pk索引找到数据,再筛选第二个条件要快
qq_370284518 2019-08-03
  • 打赏
  • 举报
回复
求助求助
qq_370284518 2019-08-01
  • 打赏
  • 举报
回复
引用 1 楼 weixin_45311821 的回复:
可以试试这样操作
1用key(number,mode)
2用key(mode,name),外面不要再嵌套select * from

我试了key(number,mode),还是只使用到了主键索引,这个索引没有起作用..
吴郡陆伯言 2019-08-01
  • 打赏
  • 举报
回复
可以试试这样操作
1用key(number,mode)
2用key(mode,name),外面不要再嵌套select * from
qq_370284518 2019-08-01
  • 打赏
  • 举报
回复
引用 7 楼 comfortable1024 的回复:
引用 6 楼 qq_370284518 的回复:
[quote=引用 4 楼 comfortable1024 的回复:]
接上楼 key(id,mode)
还是不起作用,只用到了主键索引



那应该走主键索引已经是最快的啦,innodb是索引组织表,利用主键查询到记录后不需要回表(回表一般是随机读,性能较差),如果没有走主键而是辅助索引的话,查询到的结果还是要通过主键回表[/quote]那我就不建索引了呗,系统会默认调用主键索引对吧?
comfortable1024 2019-08-01
  • 打赏
  • 举报
回复
引用 6 楼 qq_370284518 的回复:
引用 4 楼 comfortable1024 的回复:
接上楼 key(id,mode)
还是不起作用,只用到了主键索引
你可以试试强行让它使用索引(id,mode)对比下效率 select * from tab1 use index(id,mode) where number = '5' and mode >= 1 and mode <= 21 order by id desc limit 100;
comfortable1024 2019-08-01
  • 打赏
  • 举报
回复
引用 6 楼 qq_370284518 的回复:
引用 4 楼 comfortable1024 的回复:
接上楼 key(id,mode)
还是不起作用,只用到了主键索引
那应该走主键索引已经是最快的啦,innodb是索引组织表,利用主键查询到记录后不需要回表(回表一般是随机读,性能较差),如果没有走主键而是辅助索引的话,查询到的结果还是要通过主键回表
qq_370284518 2019-08-01
  • 打赏
  • 举报
回复
引用 4 楼 comfortable1024 的回复:
接上楼 key(id,mode)
还是不起作用,只用到了主键索引
qq_370284518 2019-08-01
  • 打赏
  • 举报
回复
引用 3 楼 comfortable1024 的回复:
排序也要用到索引的,可以试试

要怎么修改呢?给id单独建索引?
comfortable1024 2019-08-01
  • 打赏
  • 举报
回复
接上楼 key(id,mode)
comfortable1024 2019-08-01
  • 打赏
  • 举报
回复
排序也要用到索引的,可以试试

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧