详解mysql中的冗余和重复索引

在MySQL中,重复索引和冗余索引的管理是性能优化的关键。以下是对这两种索引的概述,以及如何识别和处理它们的策略。

重复索引

重复索引是指在相同的列上以相同的顺序创建的索引。创建重复索引会导致MySQL在维护和优化查询时的性能下降。因此,应该避免无意间创建这样的索引,并在发现后及时删除。

冗余索引

冗余索引是指一个索引是另一个索引的前缀。例如,如果有一个索引 (a, b),再创建一个索引 (a) 就是冗余的。虽然 (a, b) 可以用于 (a) 的查询,但 (b, a) 就不是冗余索引。冗余索引通常发生在添加新索引时,建议尽量扩展已有的索引。

示例

以下是一个示例SQL,展示了重复索引的创建:

 

sqlCopy Code

CREATE TABLE test ( ID INT NOT NULL PRIMARY KEY, A INT NOT NULL, B INT NOT NULL, UNIQUE(ID), INDEX(ID) ) ENGINE=InnoDB;

在这个例子中,ID 列上创建了重复索引。

查找冗余和重复索引的方法

  1. 使用 common_schema: 通过安装 Shlomi Noach 的 common_schema,可以利用其视图来定位重复和冗余索引。
  2. 使用 Percona Toolkit: 工具 pt_duplicate-key-checker 可以分析表结构,找出冗余和重复的索引。

总结

了解冗余和重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技梦想家

创作不易,欢迎施舍

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值