MySQL 多列索引

MySQL 多列索引

多列索引也叫联合索引又叫复合索引
也就是把多个字段按顺序连起来创建一个索引 ( 最多16列 )
理解这句:按顺序的连起来 从左到右的

为什么要创建多列索引?
相对在每个列上单独建索引 多列索引占用空间更小 检索也就越快

比如表里有3个字段 name,age,from

name age from
mashen 1991 Dalian
-- 创建多列索引
alter table x_test add index(name,age,from);

创建的索引就相当于是 : mashen1991Dalian
当查询时从左到右去比对查询

示例:

// 完全使用索引
WHERE name = 'name' AND age = 'age' AND from = 'from';

// 完全使用索引 ( mysql会自动排序 )
WHERE age = 'age' AND name = 'name' AND from = 'from';

// 使用索引 ( 因为是遵循前缀索引的原则 所以下面两个查询都使用了索引 )
WHERE  name = 'name';
WHERE  name = 'name' AND age = 'age';

// 没有使用索引 ( 因为缺少age字段 无法现实从左到有匹配 )
WHERE  age = 'age';
WHERE  age = 'age' AND from = 'from';

// 部分索引 ( name最左使用了索引 from未使用索引 因为中间断开了age )
WHERE  name = 'name' AND from = 'from';

MySQL 5.7 参考手册 - 多列索引

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容