Python Django/Postgres将使用多少字节作为十进制字段?
我想存储一个小数点后两位(0到100)的百分比。因此,十进制字段(总共5位数字)似乎是一个不错的选择,但是Python Django/Postgres将使用多少字节作为十进制字段?,python,django,postgresql,decimal,Python,Django,Postgresql,Decimal,我想存储一个小数点后两位(0到100)的百分比。因此,十进制字段(总共5位数字)似乎是一个不错的选择,但是smallint也可以用两个字节完成任务 对于此十进制字段的配置,数据库中将使用多少字节?作为后续问题,我将如何查询Postgres以调查幕后使用的数据结构的细节 实际存储需求是每组四位十进制数字需要两个字节,外加三到八个字节的开销 在您的情况下,这将是5到10个字节 但存储大小应该是您在这里最关心的问题: 根据该数字之前和之后字段的类型,您可能不会像您所想的那样节省空间,因为某些数据类型
smallint
也可以用两个字节完成任务
对于此十进制字段的配置,数据库中将使用多少字节?作为后续问题,我将如何查询Postgres以调查幕后使用的数据结构的细节
实际存储需求是每组四位十进制数字需要两个字节,外加三到八个字节的开销
在您的情况下,这将是5到10个字节
但存储大小应该是您在这里最关心的问题:
- 根据该数字之前和之后字段的类型,您可能不会像您所想的那样节省空间,因为某些数据类型以4或8字节边界对齐,并且您可能会因为填充而丢失一些已保存的空间
- 如果对这些数据使用大量算术运算(数字运算),
或smallint
的性能将比integer
好得多numeric
- 另一方面,在算术处理过程中,必须将逗号左右移动。这很快,但可能会降低代码的可读性,从而导致维护负担
数值的存储和处理
,您必须浏览源代码。谷歌搜索“postgres数据类型大小”