2011-09-04 244 views
5

我们需要在MySQL(InnoDB)表中存储很多行,它们都有一个8字节的二进制字符串作为主键。 我想知道阉它是最好使用BIGINT列型(其中包含64位,从而8字节,整数)或BINARY(8),它是固定的长度。MySQL:主键是一个8字节的字符串。使用BIGINT还是BINARY(8)更好?

由于我们使用这些ID在我们的应用程序的字符串,而不是数字,将其存储为二进制字符串听起来更连贯的给我。不过,我想知道这是否有性能问题。它有什么区别?

如果关键,我们正在读取/存储用十六进制表示法(如PAGE_ID = 0x1122334455667788)这些编号。 我们不会在查询中使用整数无论如何,因为我们正在写一个PHP应用程序,正如你一定会知道,没有一个“无符号长长整型”类型,所以所有的整数都依赖机器的尺寸。

回答

2

我会用二进制(8)如果这符合你的设计。

否则,你会永远拥有在性能上还是复杂的转换开销的地方。 RDBMS级别的类型之间没有太多(如果有)差异

相关问题