面试:你设计索引的原则是什么?怎么避免索引失效?

1.设计索引的原则是什么?

1. 为频繁查询的字段建立索引
2.选择区分度大的列作为索引
性别 男 女 加索引和不加区别不大
超过基线,比如查询的数据集大于30%

3.尽量为ORDER BY 和 GROUP BY 后面的字段建立索引
因为在GROUP BY 的时候也要先根据 GROUP BY 后面的字段排序,然后在执行聚合操作。
如果 GROUP BY 后面的字段已经建立了索引,那么MySQL 就不需要再去排序,也就不会产生临时表。

 

 

2. 索引失效的常见场景

复制代码
使用 OR 关键字会导致索引失效,不过如果要想使用OR 又不想让索引失效,那就得需要为or条件中的每个列都建立索引。这很显然是和上面的不要建立太多的索引相违背。
联合索引如果不遵循最左前缀原则,那么索引也将失效
使用模糊查询的时候以%开头也会导致索引失效(这里就不再重复原因了,因为前面的文章都是说过了,这里就是为了帮助大家再会回忆下)
索引列如果使用了隐式转换也会导致索引失效

作者:HollisChuang
链接:https://juejin.cn/post/6960470472077082638
来源:稀土掘金

复制代码

 

posted @   littlevigra  阅读(65)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2021-08-20 app登陆到离线的时候,报错:数据格式转换错误n I/O error has occurred while writing a response message entity to the container output stream. org.glassfish.jersey.server.internal.process.MappableException
2019-08-20 getopts的使用 + 创建空目录
2018-08-20 sudo 其他用户执行命令
点击右上角即可分享
微信分享提示