索引法则--不等于会导致索引失效
===============
1 准备数据
1.1 建表
DROP TABLE IF EXISTS staff; CREATE TABLE IF NOT EXISTS staff ( id INT PRIMARY KEY auto_increment, name VARCHAR(50), age INT, pos VARCHAR(50) COMMENT '职位', salary DECIMAL(10,2) );
1.2 插入数据
INSERT INTO staff(name, age, pos, salary) VALUES('Alice', 22, 'HR', 5000);
2 测试&Explain分析
2.1 创建索引
CREATE INDEX idx_nameAgePos ON staff(name, age, pos);
2.2 测试
Case#1:使用等于
EXPLAIN SELECT * FROM staff where name = 'Alice';
结果:索引可以正常被使用
Case#2:使用不等于
EXPLAIN SELECT * FROM staff where name != 'Alice';
结果:无法使用索引,全表扫描
3 结论
使用不等于的时候无法使用索引导致全表扫描