题解 | #针对上面的salaries表emp_no字段创建索引idx_emp_no#

针对上面的salaries表emp_no字段创建索引idx_emp_no

http://www.nowcoder.com/practice/f9fa9dc1a1fc4130b08e26c22c7a1e5f

-- 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。

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

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

MySQL试题答案解析 文章被收录于专栏

MySQL在线编程重点试题解析

全部评论

相关推荐

10-13 12:53
已编辑
湖北工业大学 前端工程师
小海c:包装一下,第一个感觉是字节青训营的那个,后面那个是黑马的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务