【问题标题】:PostgreSql storing a value as integer vs varcharPostgreSql 将值存储为整数 vs varchar
【发布时间】:2016-05-23 09:54:31
【问题描述】:

我想在表格中存储一个 15 位数字。

就查找速度而言,我应该使用bigint 还是varchar

此外,如果它填充了数百万条记录,那么不同的数据类型是否会对存储产生影响?

【问题讨论】:

标签: postgresql types varchar bigint


【解决方案1】:

就空间而言,bigint 占用 8 个字节,而 15 个字符的字符串将占用最多 19 个字节(一个 4 个字节的标题和最多另外 15 个字节的数据),具体取决于其值。此外,一般来说,对于数值运算,相等性检查应该稍快一些。除此之外,它在很大程度上取决于您打算如何处理这些数据。如果您打算使用数值/数学运算或根据范围查询,则应使用bigint

【讨论】:

    【解决方案2】:

    您可以将它们存储为 BIGINT,因为与 varchar 相比,使用 INT 进行比较更快。如果您期望数百万条记录来加快数据检索速度,我还建议您在列上创建索引。

    您也可以查看forum

    索引在整数类型上最快。字符类型可能已存储 下面作为整数(猜测)。VARCHARs 是变量分配 当您更改字符串长度时,它可能需要重新分配。

    通常整数最快,然后是单个字符,然后是 CHAR[x] 类型,然后是 VARCHARS。

    【讨论】:

    • CHARVARCHAR 的备注不适用于 Postgres;在内部,它们是相同的,只是 CHAR 值用空格填充,这意味着 VARCHAR 通常实际上更快。
    猜你喜欢
    • 2018-10-17
    • 1970-01-01
    • 2018-07-26
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    相关资源
    最近更新 更多