建立索引
- 对查询频次较高,数据量较大的表建立索引
- 索引字段应该从where子句条件中提取
- where子句组合较多,应该挑选最常用,过滤效果最好的列的组合
- 业务上具有唯一特征的字段,即使是多个字段的组合,也必须建成唯一索引
使用前缀索引
- 索引列开始的部分字符,索引建立之后也是用硬盘来存储,因此短索引可以提高索引访问的io效率
- 对于blob或text、很长的varchar列必须使用前缀索引,MySQL不允许索引这些列的完整长度
- 前缀索引是一种能使索引更小更快的有效方法,但是缺点是MySQL无法使用前缀索引做order by和group by,也无法使用前缀索引做覆盖扫描
选择合适的索引顺序
- 当不需要考虑排序和分组的时候,将选择性最高的列放在前面
- 索引的选择性是指不重复的索引值和数据表的记录总数之比
- 索引的选择性越高则查询效率越高,唯一索引的选择性是1,因此也可以用唯一索引提升查询效率
删除无用索引
- MySQL允许在相同列上创建多个索引,重复的索引需要单独维护,并且优化器在优化查询的时候也需要逐个考虑,这会影响性能
- 重复索引是指在相同列上按照相同的顺序创建的相同类型的索引,应该避免创建重复索引
- 如果创建了索引(a,b)再创建索引(a)就是冗余索引,因为这只是一个索引的前缀索引
- 除了删除重复索引和冗余索引,还有一些永远也用不到的索引也应该删
« 上一篇:
覆盖索引
» 下一篇:
索引失效的情况
posted @
2022-03-14 09:35
张三丰学Java
阅读(
53)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-03-14 layui.use