索引法则--少用OR,它在连接时会索引失效

Mysql 系列文章主页

===============

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 测试

EXPLAIN SELECT * FROM staff WHERE name = 'Alice' or name = 'Bob';

索引法则--少用OR,它在连接时会索引失效

结果:type=all,索引失效,全表扫描。

3 结论

OR连接时会索引失效

上一篇:STM32F103C8T6移植uC/OS-III基于HAL库


下一篇:[GXOI/GZOI2019]与或和