2012-07-27 51 views
0

我知道索引的不利之處在於,每次寫入表時都必須更新它們,即影響加載時間。但是,對於我的一個表格,我經常使用SELECT,它使用WHERE子句中的3個不同列。所以我想,我真的想在表格中添加3個索引嗎?以前的缺點是每次寫入時更新每個索引。但是,該表僅使用INSERT DELAYED寫入。這是否意味着沒有缺點,我應該使用3個指數?延遲插入多指標下行? - MySQL

回答

1

其實你可能想要一個索引和所有3列。 MySQL在查詢中每個表只能使用一個索引。
該指數有一個表現下滑的跡象,但它遠遠低於沒有它的下跌點。

+0

如果我爲3列添加索引,但查詢僅使用WHERE子句中的2列,它仍使用索引嗎?這些列放置在索引中的順序是否重要? – 2012-07-28 00:01:51

+1

僅當它們是索引中的前2列時。是的,順序很重要,如果你想使用給定索引中的第x列,你還必須使用x(1,2,3 .... x)之前的所有列。您可以製作多個索引來覆蓋您的所有案例。 – Vatev 2012-07-28 00:03:36