在索引列上做任何操作,都会导致索引失效而使用全表扫描。

创建索引:

ALTER TABLE `staffs` ADD INDEX idx_staffs_nameAgePos(`name`, `age`, `pos`);

在索引列上做计算或函数导致索引失效:

EXPLAIN SELECT * FROM staffs WHERE LEFT(`name`, 4)='July';

1611476621775.png

在索引列上做类型转换(显式、隐式)导致索引失效:

EXPLAIN SELECT * FROM staffs WHERE `name`=2000;  -- varchar(64)

1611479312147.png


小伍
139 声望4 粉丝