索引重复了?

2021-04-24 14:20:05 +08:00
 daqin

各位大佬,由于索引占用磁盘太大,准备清理多余索引,大家帮忙看看。第一个和最后一个索引是不是重复了。可以删除第一个索引?

3250 次点击
所在节点    MySQL
12 条回复
mengyx
2021-04-24 14:32:04 +08:00
不一样吧 一个是单列索引 一个是联合索引
lewis89
2021-04-24 14:46:18 +08:00
重复了,联合索引能够满足第一个索引的所有功能
Rache1
2021-04-24 15:35:30 +08:00
第一个冗余,可以删掉
zlowly
2021-04-24 15:40:51 +08:00
虽然最后一个联合索引可以提供第一个索引的功能,但如果从含义上猜测,id 很可能是唯一索引,这种情况根本就无需 country,又或者这个表里相同 id 的记录本来就不会太多,那联合 country 提升的性能也不明显,所以你还是得看数据具体情况和使用场景分析,在这两个里面选一个留下。
zhuawadao
2021-04-24 17:01:41 +08:00
不是,我寻思你也没说是啥数据库啊
nuistzhou
2021-04-24 17:15:00 +08:00
@zhuawadao mysql 节点
Soar360
2021-04-24 18:24:49 +08:00
第一个重复了,可以删掉。
wolfie
2021-04-24 18:54:07 +08:00
沟通少的小团队会出现这种情况,各玩各的。
wd
2021-04-25 07:50:54 +08:00
@zlowly 思路不错,不过那个看着是 store 的 id,估计是另外一个表的主键,这就看具体一个 store country 有多少了,少的话确实没必要
wakzz
2021-04-25 09:48:02 +08:00
楼上的不完全正确。如果当前场景下,没有 store_id 与主键 id 的覆盖索引查询场景,那么第一个索引删掉没问题。

但如果存在 store_id 与主键 id 的覆盖索引查询场景,或者例如 `where store_id order by 主键 id` 之类的查询,那么第一个索引还是不能删掉的。


@lewis89
@faqqcn
@Soar360
beitayongguo
2021-04-25 09:52:37 +08:00
第一个索引看是否用到覆盖索引吧 还是得看场景和具体数据
lladsppku
2021-04-25 19:22:35 +08:00
第一个和最后一个重复了。而且盲猜 coupon count 和 sourceid 这样的索引也没啥区分度。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/772917

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX