myql数据库充电MySQL

MySQL 多列索引

2017-07-30  本文已影响0人  mashen

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 参考手册 - 多列索引

上一篇下一篇

猜你喜欢

热点阅读