2011-03-10 82 views
2

我有兩個表,a和b,並且想在列之間創建m:n關係。
當然,我創建了第三個表ab,列a_id和b_id。對於m:n關係,我應該使用哪些索引與MySQL?

由於所有對都應該是唯一的,因此我在兩個字段和每個字段的一個btree索引上創建一個主索引。 現在我有一個表只有2個字段的3個索引,並認爲這是矯枉過正。 這兩個列的索引實際上是否需要或MySQL是否以特殊方式處理這種情況?

回答

3

您的主索引(a_id,b_id)也將覆蓋僅在a_id上的搜索,因此無需單獨對a_id進行索引。

+0

來源/引用? – tstenner 2011-03-10 15:37:57

+0

@tstenner:除了我多年的經驗? :-)請參閱:[多列索引](http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html) – 2011-03-10 15:47:44

+0

沒有冒犯,但我知道有很多年的人經驗誰使用他們的技術決定從1999年的知識,即使他們的論據的基礎是無效的。但感謝鏈接,它解釋了我需要的一切。 – tstenner 2011-03-10 15:52:53