我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中的组合索引与单列索引的区别有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中的组合索引与单列索引的区别有哪些

本篇内容介绍了“MySQL中的组合索引与单列索引的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

MySQL中的组合索引与单列索引的区别有哪些

什么是组合索引

两个或更多个列上的索引被称作联合索引,联合索引又叫组合索引。【相关推荐:mysql视频教程】

例如索引是 key index (a,b,c) 可以支持 a | a,b| a,b,c 3 种组合进行查找,但不支持 b,c 进行查找。在使用的时候,a, c 组合也可以用,但实际上只用到了 a 的索引

MySQL中的组合索引与单列索引的区别有哪些

创建组合索引

-- 普通的组合索引
create index index_name on table_name (column1, column2, ...)
-- 组合要求唯一的索引,相比与上一种,多出了 【unique】关键字
create unique index index_name on table_name (column1, column2, ...)

MySQL中的组合索引与单列索引的区别有哪些

删除组合索引

-- 用法 1
drop index index_name on talbe_name
-- 用法 2
alter table table_name drop index index_name
-- 用法 3,对 2 的包装
alter table table_name drop primary key

单列索引陷阱

MySQL中的组合索引与单列索引的区别有哪些

MySQL中的组合索引与单列索引的区别有哪些

如图所示,我们创建了 2 个索引,在 where 中使用 and 进行查询是,从执行计划里看只使用到了第一个条件上的索引,后续的索引直接被忽略掉

组合索引陷阱

如图,现在建立组合索引 a,b,c

MySQL中的组合索引与单列索引的区别有哪些

上图的条件查询为 b,a,c,mysql 会自动处理条件顺序变为 a,b,c , 再使用定义好的组合索引

MySQL中的组合索引与单列索引的区别有哪些

上图的查询条件是 b,a,同样的,mysql 调整条件顺序为 a,b,再走组合索引

MySQL中的组合索引与单列索引的区别有哪些

上图的查询条件是 b,c,很明显,由于没有使用 a 作为条件列,导致 mysql 没有使用组合索引

与单列索引的区别

联合索引中列的顺序非常重要,从左原则。

单个索引就是一个一个起作用,也就是说有三个单个索引,哪个条件查询在前哪个起作用,其他不起作用。

组合索引使用场景

  • where 条件会经常出现的,并且当前表的数量比较大。

  • where 条件中是用 and 而非 or 的时候。

  • 联合索引比单个索引更适合,因为索引占用一定磁盘空间,也就说明有一定的开销,如果多个单个索引比较多,那么多资源的浪费也比较多,联合索引相当于对多个列建索引,并且只建一次,and 条件下非常适合。

“MySQL中的组合索引与单列索引的区别有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中的组合索引与单列索引的区别有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle组合索引和单个索引有什么区别

组合索引是指在表中创建多个列的索引,而单个索引是指只针对一个列创建索引。区别如下:组合索引可以通过同时查询多个列来提高查询效率,而单个索引只能通过查询一个列来提高查询效率。组合索引可以减少索引的数量,减少索引的存储空间,提高插入、更新和
oracle组合索引和单个索引有什么区别
2024-04-09

MySQL中复合索引和覆盖索引的区别详解

目录前言准备复合索引覆盖索引总结前言准备我们先准备一张表和几个字段,方便介绍覆盖索引和复合索引。创建一个user表,表中有id、name、school、age字段。字段名字段类型idintnamevarcharschoolvarcha
MySQL中复合索引和覆盖索引的区别详解
2023-11-23

mysql组合索引失效的情况有哪些

MySQL组合索引失效的情况有以下几种:1. 索引列的顺序不符合查询条件:组合索引的顺序非常重要,如果查询条件中的列不按照组合索引的顺序进行查询,那么组合索引将失效。2. 索引列被使用了函数或表达式:如果查询条件中的索引列被使用了函数或表达
2023-08-09

mysql中的索引有哪些

mysql中的索引通过在表中创建数据结构来优化数据检索,提高查询性能。主要索引类型有:b-tree索引:平衡树形结构,适合范围查询。hash索引:哈希表存储,快速查找特定值。fulltext索引:全文搜索。spatial索引:空间数据查找。
mysql中的索引有哪些
2024-04-22

普通索引与唯一索引在MySQL 中有什么区别

这篇文章给大家介绍普通索引与唯一索引在MySQL 中有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1 概念区分普通索引和唯一索引普通索引可重复,唯一索引和主键一样不能重复。 唯一索引可作为数据的一个合法验证手
2023-06-06

MSSQL 的复合索引和包含索引有啥区别?

复合索引​ 和 Include索引​ 各有利弊吧,前者会让索引页的行数据更大,导致索引页更多,也就会占用更多的存储空间,更多的逻辑读,索引维护开销也更大,而后者只会将 Include 列 保存在叶子节点,不参与索引计算,相对来说占用的索引页
SQL索引存储2024-12-13

编程热搜

目录