performance - Postgres 性能 : Static row length?

标签 performance postgresql

Mysql 以一种特殊的(大概是性能更高的)方式运行 when a table has no variable-width columns

postgres 有类似的行为吗?向表中添加单个可变宽度列会产生重大差异吗?

最佳答案

postgres docs (read the tip) 中给出的一般建议是可变长度字段通常性能更好,因为它会产生更少的数据,因此该表适合更少的磁盘 block 并在高速缓存中占用更少的空间。现代 CPU 比内存和磁盘快得多,可变长度字段的开销值得减少 IO。

请注意,postgresql 将 NULL 值存储在行开头的位图中,如果该值为 NULL,则忽略该字段。因此,任何可为空的列基本上都具有可变宽度。 postgresql 存储数据的方式 ( Database page layout ) 表明检索最后一列会比第一列慢。但是,如果您有很多列并且数据大部分都在缓存中,那么这可能只会产生明显的影响。否则磁盘io将是主导因素。

关于performance - Postgres 性能 : Static row length?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5437336/

相关文章:

java - 服务器上的多线程应用程序比单线程慢(与 JUnit 测试不同)

Linux 多播 sendto() 性能因本地监听器而降低

c - 为什么添加线程会使这个简单的套接字服务器更快?

postgresql - 从 Asp.Net C# 应用程序执行 PostgreSQL 存储过程时出现 42809 错误

java - 线程安全字符串拆分

python - 使用 Python 将二进制文件上传到 postgres 服务器

java - Postgres Interval 不适用于 native spring 数据 JPA 查询

sql - 如果条目不存在,则使用 PostgreSQL 进行多次插入

postgresql - 如何使用同一表中的组合列将列添加到表中?

matlab - MATLAB 中 ismember() 函数的快速版本