• MySQL 索引


    MySQL 索引

    什么是索引?

    用来高效获取数据的数据结构。
    查询:无索引时:全表查询;有索引时,高效。
    在这里插入图片描述

    索引结构

    在这里插入图片描述
    大部分存储引擎都支持B+树索引
    红黑树在大数据量情况下,层级较深,检索速度慢。
    B+树:1、所有元素出现在叶子节点;叶子节点形成单向链表

    MySQL索引数据结构 – 在B+树的基础上,增加了一个指向相邻叶子节点的链表指针。带有顺序指针的B+Tree提高了区间访问的性能。

    在这里插入图片描述

    为什么使用B+树?
    • B+树,一个页中能够存放的key和指针更多,相同数据量下,层数更少
    • 搜索效率稳定
    • 便于范围搜索和排序
    • hash索引,不支持范围查询和排序
    索引分类
    • 主键索引 :针对主键创建的索引
    • 唯一索引 : 避免数据列中的值重复,加了唯一约束的列字段创建唯一索引
    • 常规索引 --》 快速定位
    • 全文索引 --》 查找文本中的关键词
    索引分类
    • 聚集索引 必须有,只有一个
      在这里插入图片描述
    • 二级索引 可以存在多个
    索引语法

    在这里插入图片描述

    SQL性能分析
    SQL执行频率

    判断数据库增删改查的哪个为主:

    SHOW GLOBAL STATUS LIKE 'Com_______';
    
    • 1

    在这里插入图片描述
    优化查询为主的数据库

    SQL执行频率
    • 慢查询日志定位执行效率比较低的sql
      在这里插入图片描述

    查看慢查询是否开启:
    在这里插入图片描述
    查看慢查询日志:
    在这里插入图片描述

    • 业务简单但查询时间稍长,也要优化。
    profile详情

    在这里插入图片描述

    查看每一条sql指令的耗时,耗时在哪里
    show profile
    在这里插入图片描述

    explain

    查看sql语句的执行计划,是否用索引,表的连接,连接顺序
    在这里插入图片描述
    在这里插入图片描述

    Type:最反映sql性能。
    possible_key, key, key_len,rows,extra

    索引使用
    • 最左前缀法则:如果使用了联合索引,要遵守最左前缀法则。查询从索引的最左列(最左列一定要存在,可以放在任意位置)开始,不能跳过索引中的列,如果跳过了某一列,后面的字段索引失效
    • 如果有(>,<)范围查询,则范围查询右侧的列索引失效。[范围查询字段仍生效] – >**建议使用 >= <= **
    • 在索引列上进行运算,索引将失效
    • 字符串类型的字段,如果不加’',索引会失效
    • 头部模糊查询,索引会失效
    • or分割开的条件,如果or前的条件中列有索引,而条件后的列中没有索引,那么,涉及的索引都不会被用到。
    • 如果MySQL评估,使用索引会慢于全表查询,则索引失效。

    SQL提示

    • 在SQL语句中加入人为的提示来达到优化操作的目的

    在这里插入图片描述

    • use -->告诉mysql
    • ignore ->忽略索引
    • force 强制
    覆盖索引

    在这里插入图片描述

    前缀索引

    用字符串的一部分前缀建立索引
    在这里插入图片描述
    在这里插入图片描述

    前缀索引:通过前缀索引,回表查询拿到数据,与select语句对比,如果符合,则返回,继续查询下一个元素是否符合前缀,如果下一个元素找到的数据也符合,则组装数据。

    解决大文本字段进行索引时,索引体积太大,浪费磁盘IO的问题

    单例索引和联合索引

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    c++编程实例
    如何把大的‘tar‘存档文件分割成特定大小的多个文件
    ShardingSphere生产实战
    Unity之"诡异"的协程
    vue.js父组件访问子组件
    Android App links 链接打开app功能
    记一次kafka消息积压的排查
    整理一些mysql常用的命令
    MATLAB绘图
    LVS+Keepalived群集
  • 原文地址:https://blog.csdn.net/yfdddong/article/details/133988812