-- ALTER TABLE salaries ADD INDEX idx_emp_no(emo_no);
SELECT *
FROM salaries
FORCE INDEX(idx_emp_no)
where emp_no = '10005';

第一条被添加为注释的指令为创建普通index的指令;

第二条指令为使用强制索引来检索的指令。

至于为什么使用强制索引?大概是由于在普通检索时若不指定强制索引,则mysql会优先使用int类型的索引来检索字段,但这有时并不是我们所需要的最优的检索方式。

比如说下面的检索

select * 
from actor
where actor_id > 10
and date >= '2021-09-11'
and date =< '2021-09-21'

在系统检索时,MySQL会优先检索int类型的actor_id,然后检索日期类型的date。

但是,当数据量很大时,由于日期已经缩小了范围,这时优先检索日期才是最快速的。

所以需要使用强制索引来提高效率。