开发者社区 > 数据库 > 正文

0%的语句性能问题都可以靠索引解决,但索引有哪几个问题?

0%的语句性能问题都可以靠索引解决,但索引有哪几个问题?

展开
收起
vncamyi27xznk 2021-12-25 17:16:37 346 0
1 条回答
写回答
取消 提交回答
  • 第一,单列索引要充分评估,比如有20个列,每个列上都有1个单列的情况,会造成对写入的影响很大,同时单列索引的建议一定要评估可选择性。 第二,定期Review索引有效性,索引是不是在业务中真正使用在MySQL里相对不好定位,失效索引在业务快速发展频繁变更的场景下会很常见,随着新业务新添加很多新索引,这时要看新的索引是不是已经覆盖之前的旧索引,此时旧索引实际上是没有用的。维护无效索引要多一份IO成本,删除除重复索引保留有效的即可。 第三,不要走极端,包括两点:复合索引所有列与所有列都建单列索引。 比如一张表有七八个列,只在单列有索引,因为索引有回表不回表的区别,所以直接建立一个包含所有列复合索引,这个方法不可取,虽然提升了查询的效率,但等于又另外维护了一张所有字段都要排序的表。 所有列都建单列索引,实际上跟是复合索引所有列是一样的。主要消耗会出现索引维护上。

    答复内容摘自《深入MySQL实战》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1167

    2021-12-25 18:39:12
    赞同 展开评论 打赏
问答分类:
问答地址:

数据库领域前沿技术分享与交流

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
Phoenix 全局索引原理与实践 立即下载
低代码开发师(初级)实战教程 立即下载