我正在使用一个看起来有很多索引的表——实际上是 8 个。但其中一些似乎是多余的,例如,这里有一些索引:
type columns
----- ------------------------------
index project_id
unique project_id, user_id, event_id
index project_id, user_id, type, subtype
现在,据我所知,唯一的一个是必要的,因为它可以防止这三个键的组合重复,我们需要这样做。但是,第一个索引不是不必要的吗?
我做了一个快速select * from activities where project_id = 5579
操作,它使用了 4 列的索引(基于 Explain )。在另一个查询中,只需更改 project_id,它就使用了唯一索引。是否存在仍然使用第一个索引的情况,或者我可以安全地删除它吗?
这种情况也适用于 user_id 列 - 它由自身索引,然后在其第一列的位置具有多列索引。
我的理解是更多的索引 = 更慢的插入,所以我想我应该尝试删除不必要的索引。