我的问题很简单:我是否错过了任何可能使 postgres 实现更好的读取吞吐量的配置设置?
背景
我正在建模一个非常简单的 Twitter 程序。我的架构只有 3 个表:订阅,帖子, 和时间线。
我在每个表上都有索引,最重要的是时间线.时间场地。
我使用以下命令启动 postgres:
postgres -h 127.0.0.1 -p 10000 -D /mnt/tmp/postgres -c synchronous_commit=off
-c fsync=off -c full_page_writes=off -c bgwriter_lru_maxpages=0
-c shared_buffers=24GB -c bgwriter_delay=10000 -c checkpoint_segments=600
请注意,24GB 比我的数据集略大(我尝试使用 36GB,但没有额外的增益)。此外,/mnt/tmp 是 RAM 中的 tmpfs,因此任何“磁盘”写入都应尽可能快。
我是否遗漏了什么重要的事情?
答案1
是的,这是可能的。这里有一个快速食谱:
- 找出最慢的部分
- 让它更快
如果您认为这个答案太过笼统和无用,那么问题也是如此:)因此,除非您有更具体的问题/疑问,否则我认为这是我们能做的最好的事情。