码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 4、MySql 索引浅解


    4、MySql索引浅解

    InnoDB 的索引模型

    在 InnoDB 中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。InnoDB 使用了 B+ 树索引模型,所以数据都是存储在 B+ 树中的。每一个索引在 InnoDB 里面对应一棵 B+ 树。

    主键索引和普通索引的查询的区别:

    主键查询只需要搜索主键这棵 B+ 树;

    普通索引查询方式,则需要先搜索索引树,得到主键值,再到主键索引树搜索一次。这个过程称为回表。

    覆盖索引

    如果只需要查 主键ID 的值,而 ID 的值已经在 k 索引树上了,因此可以直接提供查询结果,不需要回表。也就是说,在这个查询里面,索引 已经“覆盖了”我们的查询需求,称为覆盖索引。由于覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。

    把高频查询字段设置为联合索引,它可以在这个高频请求上用到覆盖索引,不再需要回表查整行记录,减少语句的执行时间。

    最左前缀原则

    索引项是按照索引定义里面出现的字段顺序排序的。因为可以支持最左前缀,所以当已经有了 (a,b) 这个联合索引后,一般就不需要单独在 a 上建立索引了。因此,第一原则是,如果通过调整顺序,可以少维护一个索引,那么这个顺序往往就是需要优先考虑采用的。

    索引下推

    以联合索引(A, B)为例。如果现在有一个需求:检索出表中”列A是张开头,而且列B是2的所有数据”。那么,SQL 语句是这么写的:

    select * from T whete A like '张%' and B = 2;
    
    • 1

    在 MySQL 5.6 之前,只能找到所有符合A like '张%'的索引开始一个个回表。到主键索引上找出数据行,再对比字段值。MySQL 5.6 引入的索引下推优化(index condition pushdown), 可以在索引遍历过程中,对索引中包含的字段先做判断(即判断B = 2是否为true),直接过滤掉不满足条件的记录,减少回表次数。

  • 相关阅读:
    uni-app 5小时快速入门 3 创建uni-app工程(下)
    第三章:人工智能深度学习教程-基础神经网络(第五节-了解多层前馈网络)
    kubernetes部署和运行维护中的错误汇总(不定时更新)
    C++常用23种设计模式总结(三)------装饰模式
    水土保持监测,无人机倾斜摄影该如何做?
    GO并发编程基础- 如何使用channel
    探索ClickHouse——安装和测试
    TPH-yolov5论文解读
    Briefings in Bioinformatics2021 | Bert-Protein+:基于Bert的抗菌肽识别
    [附源码]计算机毕业设计JAVA创意众筹网站
  • 原文地址:https://blog.csdn.net/NanyouqiaoMu_/article/details/126146821
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号