本篇文章带大家了解一下MySQL中的组合索引,介绍一下创建、删除组合索引的方法,聊聊组合索引陷阱、组合索引与单列索引的区别、组合索引使用场景,希望对大家有所帮助!
什么是组合索引
两个或更多个列上的索引被称作联合索引,联合索引又叫组合索引。【相关推荐:mysql视频教程】
例如索引是 key index (a,b,c)
可以支持 a | a,b| a,b,c
3 种组合进行查找,但不支持 b,c
进行查找。在使用的时候,a, c
组合也可以用,但实际上只用到了 a
的索引
创建组合索引
-- 普通的组合索引 create index index_name on table_name (column1, column2, ...) -- 组合要求唯一的索引,相比与上一种,多出了 【unique】关键字 create unique index index_name on table_name (column1, column2, ...)
删除组合索引
-- 用法 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
单列索引陷阱
如图所示,我们创建了 2 个索引,在 where 中使用 and
进行查询是,从执行计划里看只使用到了第一个条件上的索引,后续的索引直接被忽略掉
组合索引陷阱
如图,现在建立组合索引 a,b,c
上图的条件查询为 b,a,c
,mysql 会自动处理条件顺序变为 a,b,c
, 再使用定义好的组合索引
上图的查询条件是 b,a
,同样的,mysql 调整条件顺序为 a,b
,再走组合索引
上图的查询条件是 b,c
,很明显,由于没有使用 a
作为条件列,导致 mysql 没有使用组合索引
与单列索引的区别
联合索引中列的顺序非常重要,从左原则。
单个索引就是一个一个起作用,也就是说有三个单个索引,哪个条件查询在前哪个起作用,其他不起作用。
组合索引使用场景
where 条件会经常出现的,并且当前表的数量比较大。
where 条件中是用
and
而非or
的时候。联合索引比单个索引更适合,因为索引占用一定磁盘空间,也就说明有一定的开销,如果多个单个索引比较多,那么多资源的浪费也比较多,联合索引相当于对多个列建索引,并且只建一次,and 条件下非常适合。
更多编程相关知识,请访问:编程视频!!
以上是深入了解MySQL中的组合索引,看看与单列索引的区别的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境