【发布时间】:2014-10-05 00:30:49
【问题描述】:
我在以下博客文章中看到一条评论,建议不要使用MEDIUMINT:
即使在 MySQL 中,也不要使用 [24bit INT]。它很笨,而且很慢,实现它的代码令人毛骨悚然。
4294967295 and MySQL INT(20) Syntax Blows
Stack Overflow 上的回答还指出,SQL Server、PostgreSQL 和 DB2 不支持MEDIUMINT:
What is the difference between tinyint, smallint, mediumint, bigint and int in MySQL?
应该避免使用MEDIUMINT,还是应该在它最能代表我存储的数据的情况下继续使用它?
【问题讨论】:
-
这是虚假的经济。现代处理器的自然宽度是 32 位或 64 位,数据库必须付出额外的努力来强制执行 24 位整数宽度。
-
@JimGarrison 我真的怀疑这在很大程度上是一个因素。它可以存储为内存中的 32 位(或不存储,但这并不重要),也可以存储在 24 位的记录中。 (在 int 上最多可节省 25% 的空间。)
标签: mysql sqldatatypes