码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL单列索引和联合索引


    索引

      • 一、简介
      • 二、单列索引
      • 三、最左前缀原则
        • 1、创建复合索引
        • 2、满足复合索引的最左特性,哪怕只是部分,复合索引生效
        • 3、没有出现左边的字段,则不满足最左特性,索引失效
        • 4、复合索引全使用,按左侧顺序出现 name,salary,索引生效
        • 5、虽然违背了最左特性,但MySQL执行SQL时会进行优化,底层进行颠倒优化
        • 6、理由
      • 四、同时存在联合索引和单列索引(字段有重复),这个时候查询mysql会怎么用索引呢?
      • 五、联合索引本质
      • 六、索引失效
      • 七、其它知识点
      • 八、MySQL存储引擎简介
        • 1、InnoDB
        • 2、MyISAM
      • 九、索引结构(方法、算法)
        • 1、Hash
        • 2、B+ Tree
        • 3、 B+/-Tree原理
      • 十、SQL优化思维导图
      • 十一、MySql数据库进阶实战

    一、简介

    利用索引中的附加列,可以缩小搜索的范围,但使用一个具有两列的索引不同于使用两个单独的索引。

    联合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏进行排序,然后按名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用,如果您知道姓和名,电话簿则更为有用,但如果您只知道名不知道姓,电话簿将没有用处。

    所以说创建联合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对前几列执行搜索时,联合索引非常有用;仅对后面的任意列执行搜索时,联合索引则没有用处。

    二、单列索引

    多个单列索引在多条件查询时优化器会优先选择最优索引策略,可能只用一个索引,也可能将多个索引全用上。但多个单列索引底层会创建多个B+索引树,比较占用空间,也会浪费一定搜索效率,故如果只有多条件联合查询时最好建联合索引。

    三、最左前缀原则

    顾名思义是最左优先,以最左边的为起点任何连续的索引都能匹配上,如果第一个字段是范围查询需要单独建一个索引,在创建联合索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。这样的话扩展性比较好,比如username经常需要作为查询条件

  • 相关阅读:
    hooks 源码浅析 — Scene
    python pytorch- TextCNN TextRNN FastText Transfermer (中英文)文本情感分类实战(附数据集,代码皆可运行)
    css复合选择器
    Vue props实现父组件给子组件传递数据
    8-汇编-寄存器(CPU工作原理)03
    HALCON的python下的使用方法(直接开发,不需要调用.hdev文件)
    【正点原子STM32连载】第二十一章 通用定时器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
    SQL 与 Pandas 数据查询和操作对比
    shell入门概述
    力扣刷题 day57:10-27
  • 原文地址:https://blog.csdn.net/guorui_java/article/details/126658790
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号