2010-10-27 54 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