测试联合索引是否命中

作者: 太阳上的雨天 分类: Mysql 发布时间: 2021-07-18 15:31

测试联合索引是否生效
user表,创建idx_id_name_mobile 联合索引, 包含字段(id, name, mobile)

主键索引和联合索引结合使用,如果联合索引符合最左前缀原则,且联合索引只使用最左的字段,则主键索引和联合索引都生效

主键索引和联合索引结合使用,如果联合索引符合最左前缀原则,联合索引遵循最左前缀原则使用多个字段,则联合索引都生效

  1. EXPLAIN SELECT * FROM user WHERE id=2; // 生效

  2. EXPLAIN SELECT * FROM user WHERE mobile=18737164856; // 不生效 不符合联合索引最左前缀原则

  3. EXPLAIN SELECT * FROM user WHERE NAME=’Test’; // 不生效 不符合联合索引最左前缀原则

  4. EXPLAIN SELECT * FROM user WHERE id=2 AND name=’Test’; // 生效

  5. EXPLAIN SELECT * FROM user WHERE id=2 AND mobile=18737164856; // 不生效 不符合联合索引最左前缀原则

  6. EXPLAIN SELECT * FROM user WHERE name=’Test’ AND mobile=18737164856; // 不生效 不符合联合索引最左前缀原则

  7. EXPLAIN SELECT * FROM user WHERE id=2 AND name=’Test’ AND mobile=18737164856; // 不生效

user表,创建idx_name_mobile_rememberToken 联合索引, 包含字段( name, mobile, rememberToken)

  1. EXPLAIN SELECT * FROM user WHERE name=’Test’ AND mobile=18737164856 AND rememberToken = ‘aaa’; // 索引生效

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注