多くのインデックスのように見えるテーブルを使用しています-実際には8つです。ただし、それらのいくつかは冗長に見えます。たとえば、これらのインデックスのいくつかを次に示します。
type columns
----- ------------------------------
index project_id
unique project_id, user_id, event_id
index project_id, user_id, type, subtype
さて、私が知っていることから、これら 3 つのキーの組み合わせの重複を防ぐために一意のキーが必要であり、それが必要です。しかし、最初のインデックスは不要ではないでしょうか。
私は簡単に実行しselect * from activities where project_id = 5579
、4列のインデックスを使用しました( Explain に基づいています)。別のクエリでは、project_id を変更するだけで、一意のインデックスが使用されました。最初のインデックスがまだ使用されている状況はありますか?それとも安全に削除できますか?
この状況は、user_id 列にも当てはまります。それ自体でインデックスが作成され、最初の列が複数列のインデックスになります。
私の理解では、インデックスが多い=挿入が遅いので、不要なものを削除しようと考えています。