这篇文章主要为大家详细介绍了MySQL的联合索引(复合索引)的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小玲来看看吧!
本文中联合索引的定义为(MySQL):
代码如下:
ALTER TABLE `table_name` ADD INDEX (`col1`,`col2`,`col3`);
MySQL的联合索引(复合索引)的实现
若多个一条SQL,需要多个用到两个条件
代码如下:
SELECT * FROM `user_info` WHERE username='XX',password='XXXXXX';
MySQL的联合索引(复合索引)的实现
当索引在检索 password
字段的时候,数据量大大缩小,索引的命中率减小,增大了索引的效率。
符合索引的索引体积比单独索引的体积要小,而且只是一个索引树,相比单独列的索引要更加的节省时间复杂度和空间复杂度
当创建(col1
,col2
,col3
)联合索引时,相当于创建了(col
)单列索引,(clo1
,clo2
)联合索引以及(col1
,col2
,col3
)联合索引想要索引生效,只能使用col1
和col1
,col2
和col1
,col2
,col3
三种组合;当然,col1
,col3
组合也可以,但实际上只用到了col1
的索引,col3
并没有用到!
联合索引相当于一个按照姓氏——名字
的一个电话簿,只能先确定姓氏才可以命中索引,下列可以正确命中联合索引的语句( =
和IN
直接的字段都可以乱序,MySQL的查询优化器可以优化成索引识别的形式)
代码如下:
-- 只命中 col1,col2
SELECT * FROM `table_name` WHERE `col1`='XX';
MySQL的联合索引(复合索引)的实现
代码如下:
-- 命中col1,col2。col1,col2的顺序可以颠倒
SELECT * FROM `table_name` WHERE `clo1`='XX',`clo2`='XXX';
SELECT * FROM `table_name` WHERE `clo2`='XXX', `clo1`='XX';
MySQL的联合索引(复合索引)的实现
代码如下:
-- 命中col1,col2,col3,同理,三个列的顺可以颠倒
SELECT * FROM `table_name` WHERE `col1`='X',`col2`='XX',`col3`='XXX';
SELECT * FROM `table_name` WHERE `col1`='X',`col3`='XX',`col2`='XXX';
SELECT * FROM `table_name` WHERE `col2`='X',`col3`='XX',`col1`='XXX';
MySQL的联合索引(复合索引)的实现
到此这篇关于mysql的联合索引(复合索引)的实现的文章就介绍到这了,更多相关mysql 联合索引 内容请搜索四海网以前的文章或继续浏览下面的相关文章希望大家以后多多支持四海网!
本文来自:http://www.q1010.com/177/19323-0.html
注:关于MySQL的联合索引(复合索引)的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。