降低 PostgreSQL 中的时间/时间戳精度是否有性能或存储空间优势?

Fab*_*iel 5 postgresql performance timestamp disk-space

PostgreSQL 允许time/timestamp指定精度:

time, timestamp, 并interval接受一个可选的精度值p,该值指定保留在秒字段中的小数位数。默认情况下,没有明确的精度限制。的允许范围p是 0 到 6。

来自PostgreSQL 13 文档

然而它指出的存储空间是一个常数8字节(timestamptime without timezone为)和12字节time with timezone的无论p

在不需要额外精度的情况下——比如毫秒(p = 3)或秒(p=0)就足够了——显式降低精度是否有优势?

jja*_*nes 8

如果您需要四舍五入的值,与每次访问时动态四舍五入相比,将它们四舍五入存储将更快且不易出错。

精度较低意味着更多的联系,因此索引重复压缩的机会更多(在足够新的版本上提供)。如果您的 FS 提供内置压缩,它还会在数据文件脱机时(如在备份中)和联机时为数据文件提供更好的压缩。

  • 您认为性能差异很明显吗? (2认同)