gpt4 book ai didi

MySQL:两位数 0...53 - 使用 TINYINT(2) 或其他方法?

转载 作者:可可西里 更新时间:2023-11-01 08:34:27 27 4
gpt4 key购买 nike

我需要在 MySQL TABLE 中存储一个字段,该字段只能包含 0 到 53 之间的数字。这些数字永远不会小于 0 或大于 53。什么能提供更好的性能并且是存储这些的最有效方法?

TINYINT(2)
TINYINT(2) UNSIGNED

或者其他方法?谢谢!

最佳答案

我会选择 TINYINT UNSIGNED,因为它是一个基本类型并且 MySQL 知道如何有效地处理它。 [0-53] 在 6 位范围内:以某些特殊结构和随之而来的开销为代价来节省 2 位可能不是一个好主意。

Unsigned 因为(取决于读取数据的语言)您想要处理正数。在您使用的语言中,有符号 值可能有一些不同(例如右移位,如果值被处理,它将从左向右扩展符号位)。这取决于您的需求和操作。

至于 CPU,数据总线(通常)是 32 或 64 位。例如,使用 32 位而不是 8 位可能在性能方面具有一些优势,但是

  • 显然,每个值占用的空间多 4 倍
  • 在性能方面,当检索多行数据时,MySQL 会优化传输(它不会一次返回一个字节),因此应该不会有太大差异。

关于MySQL:两位数 0...53 - 使用 TINYINT(2) 或其他方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16937259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com