查看完整视频
评论可见

您需要在视频最下面评论,方可查看完整视频

积分观看

您支付积分,方可查看完整视频

{{user.role.value}}
付费视频

您支付费用,方可查看完整视频

¥{{user.role.value}}
专属视频

只允许以下等级用户查看该视频

升级
会员专享

MySQL索引优化最全攻略,4大维度解读!

MySQL最全索引优化攻略独家图:

隐藏内容,您需要满足以下条件方可查看
End

 

课后作业:

1:什么情况需要用到索引?

2:什么情况不需要建立索引?

3:哪些情况索引会失效?

4:MySQL 5.6中,对索引做了哪些优化?

MySQL

MySQL Explain执行计划,最全实战案例讲解!

2020-9-9 18:01:35

MySQL

MySQL性能优化实战,手把手教你4大解决步骤!

2020-9-4 18:27:06

2 条回复 A文章作者 M管理员
  1. 1:什么情况需要用到索引?
    在经常需要搜索的列上,可以加快搜索的速度;
    在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
    在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
    在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
    在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
    在经常使用在WHERE子句上的列上面创建索引,加快条件的判断速度。

    2:什么情况不需要建立索引?
    第一,对于那些在查询中很少使用或者参考的列不应该创建索引。
    第二,对于那些只有很少数据值的列也不应该增加索引。
    第三,对于那些定义为text、image和bit数据类型的列不应该增加索引。
    第四,当修改性能远远大于搜索性能时,不应该创建索引。

    3:哪些情况索引会失效?
    1、如果条件中有or,即使其中有条件带索引也不会使用
    2、对于多列索引,不是使用的第一部分,则不会使用索引
    3、like查询是以%开头
    4、如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
    5、如果mysql估计使用全表扫描要比使用索引快,则不使用索引

    4:MySQL 5.6中,对索引做了哪些优化?
    索引下推;如果没有索引下推优化,当进行索引查询时,首先根据索引来查找记录,然后再根据where条件来过滤记录;当支持ICP优化后,mysql会在取出索引的同时,判断是否可以进行where条件过滤再进行索引查询,也就是说提前执行where的部分过滤操作,在某些场景下,可以大大减少回表次数,从而提升整体性能。

    • 索引失效的部分还可以在增加,这块的内容非常重要,可以结合着上面我的图再来增加,还可以建立的更加完整。

      MySQL5.6的改进部分,这个也是大厂在面试的考点,建议可以结合一个例子再来加深理解😊

个人中心
今日签到
搜索