我们需要在MySQL(InnoDB)表中存储许多行,所有这些行都有一个8字节的二进制字符串作为主键。 我想知道最好使用BIGINT列类型(包含64位,因此是8字节,整数)或BINARY(8),这是固定长度。
由于我们在应用程序中使用这些id作为字符串,而不是数字,因此将它们存储为二进制字符串听起来更加连贯。但是,我想知道这是否存在性能问题。这有什么不同吗?
如果这很重要,我们正在使用十六进制表示法读取/存储这些ID(如page_id = 0x1122334455667788)。 我们不会在查询中使用整数,因为我们正在编写PHP应用程序,并且您肯定知道,没有“unsigned long long int”类型,因此所有整数都是与机器相关的大小。
答案 0 :(得分:2)
如果这符合您的设计,我会使用二进制文件(8)。
否则,在某些地方,您的性能或复杂性总会产生转换开销。 RDBMS级别的类型之间不会有太多(如果有的话)差异