Mysql中的联合索引、前缀索引、覆盖索引

索引

索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

联合索引

又名复合索引,由两个或多个列的索引。它规定了mysql从左到右地使用索引字段,对字段的顺序有一定要求。一个查询可以只使用索引中的一部分,更准确地说是最左侧部分(最左优先)。如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

CREATE TABLE test(a INT, b INT, c INT, KEY(a, b, c));

前缀索引

对于列的值较长,比如BLOB、TEXT、VARCHAR,就必须建立前缀索引,即将值的前一部分作为索引。这样既可以节约空间,又可以提高查询效率。但无法使用前缀索引做 ORDER BY 和 GROUP BY,也无法使用前缀索引做覆盖扫描。

 # 语法ALTER TABLE table_name ADD KEY(column_name(prefix_length));# 示例ALTER TABLE city ADD KEY(cityname(7))

覆盖索引

跟联合索引有点类似,就是在查询t的时候只用去读取索引而取得数据,无需进行二次查询相关表。这样的索引的叶子节点上面也包含了他们索引的数据。

判断标准:使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询。

Mysql中的联合索引、前缀索引、覆盖索引相关推荐

  1. 【MySQL】索引优化中的最左前缀原则和索引下推

    目录 一.引入 二.覆盖索引 ​ 讲接下来的问题前首先讲一下联合索引的底层存储结构长什么样?联合索引的检索过程是什么样的呢? 三.最左前缀原则 最左前缀原则的定义 四.索引下推 五.小结 一.引入 在 ...

  2. MySQL中的联合索引学习教程

    MySQL中的联合索引学习教程 这篇文章主要介绍了MySQL中的联合索引学习教程,其中谈到了联合索引对排序的优化等知识点,需要的朋友可以参考下 联合索引又叫复合索引.对于复合索引:Mysql从左到右的 ...

  3. 【MySQL进阶-03】深入理解mysql的索引分类,覆盖索引,覆盖索引失效,回表,MRR

    MySql系列整体栏目 内容 链接地址 [一]深入理解mysql索引本质 https://blog.csdn.net/zhenghuishengq/article/details/121027025 ...

  4. 其实 MySQL 中的 like 关键字也能用索引

    上篇文章中,松哥和大家分享了索引的两个使用规则: 索引上不要使用函数运算. 使用覆盖索引避免回表. 当然,凡事有个度,用哪一种策略也要结合具体的项目来定,不能为了 SQL 优化而抛弃了业务. 今天,松 ...

  5. Mysql中主键和外键和索引

    Mysql中主键和外键和索引 1.主键和外键是什么 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是 ...

  6. mysql索引篇之覆盖索引、联合索引、索引下推

    覆盖索引 在之前<mysql索引初识>这篇文章中提到过,mysql的innodb引擎通过搜索树方式实现索引,索引类型分为主键索引和二级索引(非主键索引),主键索引树中,叶子结点保存着主键即 ...

  7. MySQL中的联合索引

    联合索引:也叫复合索引,指对表上的两个或两个以上的列字段进行索引.Mysql从左到右使用索引中的字段,一个查询可以只使用索引中的一部分,但只能是最左侧部分.例如索引是key index (a,b,c) ...

  8. SQL Server中的联合主键、聚集索引、非聚集索引、mysql 联合索引

    我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我 ...

  9. MySQL中会用到age字段的索引_MySQL学习笔记(四):正确使用索引(二)

    上一篇学习到了MySQL中的索引是什么,以及一些关于索引的简单的知识,这篇我打算详细地谈一谈如何正确地使用索引.索引的使用看起来很简单,但是在真正去学习它的时候才发现,原来是暗藏玄机.使用索引时有很多 ...

最新文章

  1. Spring Boot 搭载属于你的网站框架(一)
  2. 小白开学Asp.Net Core 《七》
  3. y电容如何选型_干式试验变压器选型依据
  4. 基于spring注解AOP的异常处理
  5. 【java】java 新一代垃圾回收器ZGC的探索与实践
  6. python_程序格式_缩进_行注释_段注释---python工作笔记012
  7. 做成熟的人,做高效能的人
  8. sublime text_Sublime Text Editor赠品报告和获胜者
  9. python通过身份证或出生日期获取年龄
  10. 新浪云HTML播放音乐,音乐播放器-html代码
  11. 蓝牙变成“未知USB设备”的解决方法
  12. jupyter 阿里云服务器配置 远程连接 开机自动启动服务
  13. python多线程网易云歌单
  14. 软件编程:常见缩写、简称
  15. 【SRE笔记 2022.9.21 网络及TCP握手】
  16. 最小生成树 解释 + 板子题
  17. Devops 工具集
  18. 汶川地震死亡人数5月26日消息
  19. 20140916阿里巴巴面试经历---成都站
  20. Mac电脑解决Google翻译失效实用方法

热门文章

  1. 假设以带头结点的循环链表表示队列_关于反转链表,看这一篇就够了!
  2. mendeley引用参考文献不显示_免费文献管理器Mendeley
  3. MBR与GPT的区别
  4. 51Nod 蜥蜴和地下室(搜索)
  5. JAVA synchronized关键字锁机制(中)
  6. 推荐一款软件(作业)
  7. 如何创建sequence
  8. OPENCV MFC 程序出错修改
  9. 【总有一些东西要弄清】——说说面试时一系列的CSS问题
  10. [Ruby]$: 是什么意思?