我想在表中存储一个15位数。
就查询速度而言,我应该使用bigint
还是varchar
?
此外,如果表中有数百万条记录,不同的数据类型是否会影响存储?
我想在表中存储一个15位数。
就查询速度而言,我应该使用bigint
还是varchar
?
此外,如果表中有数百万条记录,不同的数据类型是否会影响存储?
就空间而言,bigint
占用 8 字节,而 15 个字符的字符串将占用高达 19 字节(4 字节表头和多达 15 字节的数据,具体取决于其值)。此外,一般来说,对于数值操作,相等性检查应该稍微更快。除此之外,它主要取决于你打算如何使用这些数据。如果您打算使用数字/数学操作或根据范围查询,则应使用 bigint
。
CHAR
和VARCHAR
在Postgres中没有区别,除了CHAR
值会用空格填充。因此,一般情况下VARCHAR
更快。请注意,这与CHAR
和VARCHAR
的区别在其他数据库中的表现不同。 - Nick Barnes
varchar
列中。永远不要这样做。 - user330315