我需要在 MySQL TABLE 中存储一个字段,该字段只有 0 到 53 之间的数字。这些数字永远不会小于 0 或大于 53。什么可以提供更好的性能并且是存储这些数字的最有效方法?
TINYINT(2)
TINYINT(2) UNSIGNED
还是另一种方法?谢谢!
我会选择TINYINT UNSIGNED
,因为它是一种基本类型,并且 MySQL 知道如何有效地处理它。[0-53]
在 6 位范围内:考虑以某些特殊结构为代价节省 2 位,随之而来的开销可能不是一个好主意。
而且Unsigned
由于(取决于读取数据的语言)您想要处理正数。在您使用的语言中,带符号的值可能会有一些差异(例如右移位,如果值已被处理,它将从左到右扩展符号位)。这取决于您的需求和操作。
至于 CPU,数据总线(通常)是 32 位或 64 位。例如,使用 32 位而不是 8 位可能在性能方面具有一些优势,但