5.1,SQL提示
目前
tb_user表的索引情况如下:
把上述的
idx_user_age, idx_email
这两个之前测试使用过的索引直接删除。
drop index idx_user_age on tb_user;
drop index idx_email on tb_user;
A.
执行
SQL : explain select * from tb_user where profession = '
软件工程
';
查询走了联合索引。
B.
执行
SQL
,创建
profession
的单列索引:
create index idx_user_pro on tb_user(profession);
C.
创建单列索引后,再次执行
A
中的
SQL
语句,查看执行计划,看看到底走哪个索引。
测试结果,我们可以看到,
possible_keys
中
idx_user_pro_age_sta,idx_user_pro
这两个
索引都可能用到,最终
MySQL
选择了
idx_user_pro_age_sta
索引。这是
MySQL
自动选择的结果。
那么,我们能不能在查询的时候,自己来指定使用哪个索引呢? 答案是肯定的,此时就可以借助于MySQL的
SQL
提示来完成。 接下来,介绍一下
SQL
提示。
SQL
提示,是优化数据库的一个重要手段,简单来说,就是在
SQL
语句中加入一些人为的提示来达到优化操作的目的。
1). use index
:
建议
MySQL
使用哪一个索引完成此次查询(仅仅是建议,
mysql
内部还会再次进行评估)。
explain select * from tb_user use index(idx_user_pro) where profession='软件工程';
2). ignore index
: 忽略指定的索引。

最低0.47元/天 解锁文章
2479

被折叠的 条评论
为什么被折叠?



