MySQL 索引快问快答

MySQL 索引的 12 个小问题

1、LIKE 会不会走索引

% 在前的模糊匹配不走索引

2、索引列能不能为空

可以,但是当为空数据比较少的时候,查询 is not null 会全表扫描

3、函数计算会不会走索引

一般不会,另外需要注意,执行计划中的 type = index ,这个查询效率不高,是全索引扫描,虽然用到了索引,但是是索引扫描,不是索引搜索,效率比较低

4、类型不一致会不会走索引

具体问题具体分析,不一定

5、WHERE 条件顺序怎么写

记住最左前缀,其他不重要,另外一个查询是可以用到多个索引的,例如:使用 OR 连接的多个单列索引查询

6、要不要使用 UNION 替换 OR

可以,但是 SQL 变复杂了,另外如果后面分库分表,是否支持需要考虑一下

7、EXISTS VS IN

子查询结果少用 in,结果多用 exists。

8、非等于是否走索引

一般不走,特殊情况是:主键或者 count(*)会走

9、索引覆盖

尽量不要使用 select *

10、用子查询还是表关联

大部分子查询都可以用表关联替换,建议使用表关联

11、表关联之大小表

优化器,自己可以优化,不用关注是大表关联小表,还是小表关联大表

12、分页的玩法

深分页较好方案就是子查询 + 索引覆盖

#2022春招##笔试题目##Java##MySQL##学习路径##八卦##交友##技术栈#
全部评论
感谢楼主分享的MySQL索引知识点,已收藏。
点赞 回复 分享
发布于 2022-04-03 14:36

相关推荐

算法冲刺中:kpi面加一,面完完全没动静,感谢信都没有
点赞 评论 收藏
分享
评论
2
11
分享

创作者周榜

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