Python Django/Postgres将使用多少字节作为十进制字段?

Python Django/Postgres将使用多少字节作为十进制字段?,python,django,postgresql,decimal,Python,Django,Postgresql,Decimal,我想存储一个小数点后两位(0到100)的百分比。因此,十进制字段(总共5位数字)似乎是一个不错的选择,但是smallint也可以用两个字节完成任务 对于此十进制字段的配置,数据库中将使用多少字节?作为后续问题,我将如何查询Postgres以调查幕后使用的数据结构的细节 实际存储需求是每组四位十进制数字需要两个字节,外加三到八个字节的开销 在您的情况下,这将是5到10个字节 但存储大小应该是您在这里最关心的问题: 根据该数字之前和之后字段的类型,您可能不会像您所想的那样节省空间,因为某些数据类型

我想存储一个小数点后两位(0到100)的百分比。因此,十进制字段(总共5位数字)似乎是一个不错的选择,但是
smallint
也可以用两个字节完成任务

对于此十进制字段的配置,数据库中将使用多少字节?作为后续问题,我将如何查询Postgres以调查幕后使用的数据结构的细节

实际存储需求是每组四位十进制数字需要两个字节,外加三到八个字节的开销

在您的情况下,这将是5到10个字节

但存储大小应该是您在这里最关心的问题:

  • 根据该数字之前和之后字段的类型,您可能不会像您所想的那样节省空间,因为某些数据类型以4或8字节边界对齐,并且您可能会因为填充而丢失一些已保存的空间
  • 如果对这些数据使用大量算术运算(数字运算),
    smallint
    integer
    的性能将比
    numeric
    好得多
  • 另一方面,在算术处理过程中,必须将逗号左右移动。这很快,但可能会降低代码的可读性,从而导致维护负担
要了解
数值的存储和处理
,您必须浏览源代码。

谷歌搜索“postgres数据类型大小”