美文网首页
Day 43 索引优化实战

Day 43 索引优化实战

作者: 小周爱吃瓜 | 来源:发表于2022-05-18 15:17 被阅读0次
  • 联合索引

第一个字段>符号不走索引.

覆盖索引
in or 数据量。

取决于表记录

a like 'li%' b = 1 c = m
等值查询就会做调整与优化,这里走name字段过滤数据,得到的b 和 c是无序的。 无法很好的利用索引。

5.6 前需要回表才能解决.

5.6 之后下推到存储引擎层.

但也不是绝对的,数据量小的时候才会走索引,大的时候不一定会走索引下推.

trace工具

打开后查询,可以可看到扫描的行数,cpu和io成本.

order by: 索引


Using index 扫描索引本身完成排序,index效率高,filesort效率低.

order by 最左前缀。

group by xxx order by null.
where 优先级高于Having,在where层做过滤

比如name = 'zhuge' order pos.

  1. 单路排序:
    通过name = xxx 找到主键id.
    根据id然后取出来所有数据,再根据name做查找;
    单路取出来所有数据。

  2. 双路排序:
    id 和 pos2个字段的所有数据到sort buffer.
    然后通过name = 'zhuge' 找主键id,

双路取出来id,然后过滤查找符合条件的.


索引设计原则:

  1. 代码先上,开发的差不多了再完善索引
  2. 联合索引覆盖条件
  3. 最左前缀,离散度大的条件区分
  4. 长索引可以指定列长,比如name 255,此时仅需要前20的索引长度. index(name(20),age,positioin).
  • 设置联合的辅助索引
    但是也不是设置的越多越好,查询的年龄身高性别,受欢迎度等字段太多的时候不适合再追加索引。 可以再单独设置一个联合索引

相关文章

  • Day 43 索引优化实战

    联合索引 第一个字段>符号不走索引. 覆盖索引in or 数据量。 取决于表记录 a like 'li%' b =...

  • 索引优化实战

    优化步骤 1.创建索引创建索引要注意并不是所有的where条件都要加上索引才会快,过多索引反而会降低查询速度。一般...

  • 63 MySQL实战性能优化-optimizer_trace

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

  • SQL索引优化实战

    索引是帮助MySQL高效获取数据的排好序的数据结构。在学习索引优化之前建议先学习 mysql索引数据结构在分析SQ...

  • mysql索引优化实战

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

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

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

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

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

  • Day45 MySql 索引优化实战二

    分页查询优化 扫描整个索引并没有查找到没索引的行比扫全表的成本要高,所以优化器放弃了索引. 关联字段加索引。 in...

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

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

  • MySQL 优化实战 - 索引篇

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

网友评论

      本文标题:Day 43 索引优化实战

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