我读了这篇关于 PostgreSQL 在 SSD 上的性能的文章:
这两种配置似乎很重要random_page_cost
vsseq_page_cost
由于两个参数都需要匹配特定的硬件,我想知道是否可以自动检测匹配值?
更新
我有这些步骤:
- 脚本创建一些虚拟表
- 脚本将数据插入到表中
- 脚本执行一些查询
- 脚本显示 random_page_cost 和 seq_page_cost 的匹配值
- 人工或自动化系统获取这些值并更新配置。这一步不是问题的一部分。
我读了这篇关于 PostgreSQL 在 SSD 上的性能的文章:
这两种配置似乎很重要random_page_cost
vsseq_page_cost
由于两个参数都需要匹配特定的硬件,我想知道是否可以自动检测匹配值?
更新
我有这些步骤:
当然可以自动设置参数,但没有人提交补丁来做到这一点。
您需要知道驱动器的顺序和非顺序读取速度。有很多方法可以做到这一点,但你也可以使用谷歌,因为它可能并不重要。例如,对三星 SSD 840 Pro (256GB)的顺序和非顺序读取性能的快速谷歌搜索显示来自 AnandTech,
大概是1:5的比例,所以
警告,
random_page_cost
考虑到缓存,我已经证明我
random_page_cost
的速度比顺序慢 5 倍。random_page_cost
已经缓存了多少仍然是通配符。唉,这些值并不重要,除非索引扫描和顺序扫描非常接近,以至于您可以合理地意外选择顺序扫描。这种情况很少见。索引将速度提高数千倍的情况并不少见。例如,我
cpu_index_tuple_cost
的是0.005
。AFAIK,这意味着扫描索引中的 1000 个条目在规划者的眼中与去堆一次获取块相同。