我有大表。只包含3列(id(INT),bookmarkID(INT),tagID(INT)),每個bookmarkID和tagID列有兩個BTREE索引。此表有大約2100萬條記錄。我試圖運行此查詢:在MySql中執行查詢以使用特定索引
SELECT bookmarkID,COUNT(bookmarkID) AS count
FROM bookmark_tag_map
GROUP BY tagID,bookmarkID
HAVING tagID IN (-----"tagIDList"-----) AND count >= N
這需要年齡返回results.I讀的地方,如果讓其中有標籤識別,bookmarkID在一起的指數,我會得到更快的結果。我在一段時間後創建了索引。再次嘗試查詢,但似乎這個查詢沒有使用我所做的新索引。我運行了EXPLAIN並看到它實際上是真的。我現在的問題是,我如何強制查詢使用特定的索引?也歡迎其他方式使查詢更快。由於
...然後不要使用它們。 除非你是可以閱讀查詢計劃並完全理解每個圖標實際上做什麼的類型,否則它們通常會造成更多的傷害。如果優化器沒有選擇該索引,那麼通常是有充分理由的。 – JohnFx 2010-05-13 22:16:23