美文网首页
mysql索引优化实战

mysql索引优化实战

作者: Jason大圣 | 来源:发表于2019-07-24 21:39 被阅读0次

最近看了一些索引优化方面的资料,大多数内容都是互相抄袭,有的甚至根本讲不到点上。在此记录下我遇到的几个问题。

误区:最左匹配原则,where语句必须和索引字段顺序保持一致。

例如表user有一个索引index(`name`,`age`,`sex`)。那么,select * from user where age = 1 and name = 'test'仍然会命中这个索引。也就是说,where条件的顺序和索引顺序无关,只需要where语句中存在索引最左列字段,即可命中该索引。

问题:明明where语句写的很规范,符合索引要求,却没有命中索引。

示例:select a.* from user a inner join score b on a.stu_id = b.stu_id where a.name='test' and a.age = 20 order by a.id desc;

经分析未命中索引,原来是因为order by搞的鬼。这种情况,需要先对order by语句建立索引。需要将索引修改成index(`id`,`name`,`age`,`sex`)。

若遇到order by a.id desc,b.score asc这种,导致仍然未命中索引,需要在select语句上加上强制索引。

如:select a.* from user a force index(`index`) inner join score b on a.stu_id = b.stu_id where a.name='test' and a.age = 20 order by a.id desc;

相关文章

  • Java程序员必备收藏系列:解析 MySQL 索引优化,轻松掌握

    本文主要讨论MySQL索引的部分知识。将会从MySQL索引基础、索引优化实战和数据库索引背后的数据结构三部分相关内...

  • 一篇文章搞定:MySQL 索引优化

    本文主要讨论MySQL索引的部分知识。将会从MySQL索引基础、索引优化实战和数据库索引背后的数据结构三部分相关内...

  • mysql索引优化实战

    最近看了一些索引优化方面的资料,大多数内容都是互相抄袭,有的甚至根本讲不到点上。在此记录下我遇到的几个问题。 误区...

  • 63 MySQL实战性能优化-optimizer_trace

    1,mysql索引性能优化最佳实战 2, 使用索引查询如何避免回表查询 3,为什么查询有时候加了索引也会失效? 4...

  • MySQL索引知多少

    mysql索引 总结关于mysql的索引,查询优化,SQL技巧等 1 索引类型 B-Tree索引 Hash索引 ...

  • MYSQL实战优化——索引介绍

    初步了解索引 之前我们介绍过,数据页在磁盘文件中的物理存储结构,数据页之间是组成双向链表的,然后数据页内部的数据行...

  • MySQL 优化实战 - 索引篇

    关于SQL优化,这个问题,相信大家过多过少都有过一些了解。最近我也在研究SQL优化方面的东西,分享一些经验。 首先...

  • MySQL实战15 索引优化

    1.索引使用测试 1.1创建test表(测试表) 1.2.创建索引 1.3.分析以下Case索引使用情况 Case...

  • mysql 查询优化

    参考文章:mysql 如何优化left joinmysql 创建索引和删除索引mysql 查看索引 查看字符编码

  • MySQL(4)应用优化

    MySQL应用优化 4.1-MySQL索引优化与设计 索引的作用 快速定位要查找的数据 数据库索引查找 全表扫描 ...

网友评论

      本文标题:mysql索引优化实战

      本文链接:https://www.haomeiwen.com/subject/tskzkctx.html