所以這是一個問題,我一直在問pyroCMS傢伙,因爲在翻閱那裏的源代碼時,我注意到新聞模塊的news_categories表在「slug」列上有兩個索引。是否有理由在MySQL表中的列將有一個獨特的和正常的索引呢?
任何想法?
所以這是一個問題,我一直在問pyroCMS傢伙,因爲在翻閱那裏的源代碼時,我注意到新聞模塊的news_categories表在「slug」列上有兩個索引。是否有理由在MySQL表中的列將有一個獨特的和正常的索引呢?
任何想法?
創建非唯一索引並沒有意義,它只會降低表上的寫性能(因爲需要維護兩個相同的索引)。
有趣的是Oracle
在這種情況下表現得更加一致。
如果您指示Oracle
在已使用UNIQUE
索引編制索引的列上創建普通索引(反之亦然),則會引發錯誤。
但是,如果您創建一個普通索引,然後創建一個UNIQUE CONSTRAINT
(使用ALTER TABLE ADD CONSTRAINT
),它將創建約束並將使用現有的普通索引來執行它。
不,在同一列上有兩個索引是沒有意義的。
這沒有任何意義。如果列上有唯一索引,則不需要單獨的「普通」索引。除非其中的一個索引實際上是一個多列索引。 – kijin 2010-11-10 21:44:45
創建表的SQL在這裏。 https://gist.github.com/671584 – Voltxion 2010-11-10 21:47:16
我敢打賭,原因是「無能」。 – ceejayoz 2010-11-10 21:55:58