400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

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 没有使用组合索引

与单列索引的区别

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

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

组合索引使用场景

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


本文标题:MySQL中的组合索引与单列索引的区别有哪些
分享URL:http://mbwzsj.com/article/jodspd.html

其他资讯

让你的专属顾问为你服务