当smallint适合数据时,有什么理由不使用它?

dav*_*tgq 6 postgresql integer

由于 PostgreSQL 没有 1 字节的tinyint,所以第二好的选择是smallint。然而,我从各种帖子中读到,它实际上可能会更慢,因为 CPU 已针对 32 位整数进行了优化,或者可能存在到 32 位整数的隐式转换。

除了这些原因之外,是否还有其他我不知道的不使用小于 32 位整数的原因?

war*_*yen -1

如果您确定使用smallint适合您的场景,则可以在创建表时简单地将列声明为smallint。以下是创建具有smallint 列的表的示例:

CREATE TABLE example_table (
  id serial PRIMARY KEY,
  value smallint
);
Run Code Online (Sandbox Code Playgroud)