MySQL_索引优化

作者: CodeYang | 来源:发表于2021-09-29 11:29 被阅读0次

MySQL索引优化

以下笔记来自于该视频:https://www.bilibili.com/video/BV1KW411u7vy?p=20&share_source=copy_web

注意组合索引时,索引顺序

image.png

索引优化

  1. 在联合索引中(a,b,c)中,在以下案例中会产生 Using filesort (文件内排序)

    where a=1 and b>2 order by c 
    

    查询出a=1的之后,查询b>2的,但是c 是无序的,所以MySQL会进行一次文件内排序

    image.png
  2. 左连接时,索引加在右表比较合适 (右连接时,相反)【永远使用小结果集驱动大结果集】

    索引加在右表的情况

    image.png

    索引加在左表的情况

    image.png

    原因:

    左连接时,无论如何左表都需要表的全部数据

    当索引加在左表上意义不大,但是查询对应的右表数据时就需要全表扫描,找出相对应的id。

    当索引加在右表时,左表关联右表时,直接通过索引查出对应数据,避免了全表扫描。

  1. 尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少 Select *
image.png

索引失效的情况

  1. 最佳左前缀法则

    如果是一个复合索引,查询从索引的最左前列开始并且不跳过索引中的列。

  2. 不在索引列上左任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描

    示例一

    image.png

    示例二,使用了 LEFT 导致索引失效

    image.png
  1. 存储引擎不能使用索引范围条件右边的列

    存在联合索引(a,b,c),用到了a ,到 b 的时候变成了范围查找,导致用不上 c 。

    where a=1 and b>2 and c=3 
    
  2. is null,is not null 也无法使用索引

    image.png
  3. like 以通配符开头(’%abc...‘)MySQL索引失效会变成全表扫描

    image.png
  1. 少用 or,用它来连接时会索引失效


    image.png

相关文章

  • MySQL_索引优化

    MySQL索引优化 以下笔记来自于该视频:https://www.bilibili.com/video/BV1KW...

  • mysql_索引原理及优化

    思考: 我们知道mysql最好的数据存储量级是百万级别,是的往往在百万级别或者几十万级别就会出现慢查询(我对慢查询...

  • MySQL知识_索引

    目录索引: ლ(′◉❥◉`ლ) 点击此链接 MySQL_博客园链接Mysql基础原理知识点总结狂神说 讲解mysql

  • MySQL,必须掌握的6个知识点

    目录 一、索引B+ Tree 原理 MySQL 索引 索引优化 索引的优点 索引的使用条件 二、查询性能优化使用 ...

  • sql优化的一般策略

    sql 优化的一般策略:索引优化,sql改写,参数优化,优化器 索引优化 以select * from vvsho...

  • 搜索引擎优化

    搜索引擎优化 SEO(Search Engine Optimization):汉译为搜索引擎优化。搜索引擎优化是一...

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

  • MySQL深入理解_SQL优化

    索引优化1[https://juejin.im/post/6844903954392825869] 索引优化2[h...

  • 增长黑客第三章(三)

    关键词:捆绑下载,搜索引擎优化, 3.6 搜索引擎和应用商店的优化营销 搜索引擎优化:利用搜索引擎的排序规则,通过...

  • 小白入门 | 做好SEO优化,只需八步

    SEO中文解释就是“搜索引擎优化”的意思,也可以理解为“百度搜索引擎优化”、“谷歌搜索引擎优化”、“360搜索引擎...

网友评论

    本文标题:MySQL_索引优化

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