测试联合索引是否生效
user 表,创建 idx_id_name_mobile 联合索引,包含字段(id, name, mobile)
主键索引和联合索引结合使用,如果联合索引符合最左前缀原则,且联合索引只使用最左的字段,则主键索引和联合索引都生效
主键索引和联合索引结合使用,如果联合索引符合最左前缀原则,联合索引遵循最左前缀原则使用多个字段,则联合索引都生效
-
EXPLAIN SELECT * FROM
user
WHERE id=2; // 生效 -
EXPLAIN SELECT * FROM
user
WHERE mobile=18737164856; // 不生效 不符合联合索引最左前缀原则 -
EXPLAIN SELECT * FROM
user
WHERE NAME=’Test’; // 不生效 不符合联合索引最左前缀原则 -
EXPLAIN SELECT * FROM
user
WHERE id=2 AND name=’Test’; // 生效 -
EXPLAIN SELECT * FROM
user
WHERE id=2 AND mobile=18737164856; // 不生效 不符合联合索引最左前缀原则 -
EXPLAIN SELECT * FROM
user
WHERE name=’Test’ AND mobile=18737164856; // 不生效 不符合联合索引最左前缀原则 -
EXPLAIN SELECT * FROM
user
WHERE id=2 AND name=’Test’ AND mobile=18737164856; // 不生效
user 表,创建 idx_name_mobile_rememberToken 联合索引,包含字段(name, mobile, rememberToken)
- EXPLAIN SELECT * FROM
user
WHERE name=’Test’ AND mobile=18737164856 AND rememberToken = ‘aaa’; // 索引生效