我正在使用一個表格,其中有很多索引,實際上有8個索引。但他們中的一些似乎是多餘的,例如,這裏是其中的一些指標:現在數據庫和多列索引(mySQL)
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列 - 它自己編制索引,然後在其第一列有多列索引。
我的理解是更多索引=更慢的插入,所以我想我應該嘗試刪除不必要的。
那麼表是否受到慢插入的困擾?它破壞了什麼嗎?這裏的問題在於,這些索引可能是針對運行緩慢的查詢創建的,通過刪除它們,您將創建另一個問題。請記住,如果它沒有破解不修復它。 – Namphibian
@Nafphibian該表每秒可獲得大約30個插入,所以使其更好會是一件好事。我相信,由於第二和第三索引,刪除第一個索引不會影響任何依賴於它的查詢,但是我正在尋找可能比我更熟悉的人的驗證。 – Will
你的想法是正確的。我們能否看到所有的指標?它可能超過了索引。你能識別出針對這個表發出的所有查詢嗎? – Namphibian