-- 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。
但是,当数据量很大时,由于日期已经缩小了范围,这时优先检索日期才是最快速的。
所以需要使用强制索引来提高效率。