2010-10-27 55 views
2

我想知道是否有任何明顯的優點和缺點應該注意,而選擇使用二進制類型作爲主鍵,而隨機化。二進制與整數 - 作爲主鍵?

這意味着,新的插入將有隨機的4個字節作爲他們的PK - 與具有Integer類型的序列?

我正在使用MySQL/MyISAM。

感謝, Doori酒吧

+1

我聽說過使用GUID但不是隨機數。這篇文章可能是相關的:http://stackoverflow.com/questions/170346/what-are-the-performance-improvement-of-sequential-guid-over-standard-guid – YWE 2010-10-27 21:22:02

+0

感謝您的參考。 – 2010-10-27 21:39:52

回答

6

如果主鍵不連續的,則插入一個聚集索引表現不會很好。它必須重新排列幾乎每個插入索引。

+0

感謝您的快速響應,我想知道,如果使用順序整數主鍵,同時將隨機4字節作爲索引,性能成本是否與支付的成本相同? – 2010-10-27 21:31:42

+1

@Doori:如果InnoDB和更多的字段顯然更少(基於主鍵/有聚集索引存儲行),對於MyISAM,您必須測試,並且取決於您的實際表,但我認爲可以說2個索引而不是1個會有某種開銷。 – Wrikken 2010-10-27 21:42:15

+0

@Wrikken:據我所知,這是一個強制績效成本,我必須接受,同時要求隨機索引。感謝您的澄清。 – 2010-10-27 21:56:34