2017-10-20 77 views
2

正在设计一个基于Postgres的应用程序来处理大量用户的大数据。对数据进行建模,以便大多数读取仅使用三个表,这意味着所有用户都在同一时间查看相同的记录。并发读取如何影响Postgres?

关于读取(不写) - 做很多并发读取慢dB下降,或者是,一旦在内存中,Postgres的显示了同样的看法所有并发用户没有太多的延迟或资源消耗的情况下?

是否有一点,同一记录的读取次数会减慢Postgres的速度,或者一旦在内存中显示数据就没有成本了?

感谢,

亚历格拉罗斯

回答

4

做很多并发读取慢分贝下来,或者是,一旦在内存中,Postgres的显示给所有并发用户同样的观点没有太多的延迟或资源的情况下消费?

如果相同的数据请求一遍又一遍,那么,它将被保存在内存中(提供的Postgres有足够的可用内存来做到这一点)。

有一个点相同的记录速度慢的Postgres下来

没有免费的午餐的读取次数,所以是有架空参与,当并发事务在请求相同数据正好是同时。访问内存中的数据块需要通过锁(尽管非常轻量级),锁存器和信号量进行同步。

在完整数据存储在内存中的系统中,CPU确实得到了限制因素。最近的Postgres版本已经在多个并发会话的可扩展性方面的显着改善,所以请确保您使用最新版本(9.6或甚至10.0)。

这是指多个交易请求相同的数据块在正好虽然相同的纳秒。如果交易(会话连接)通常要求这三个表的不同部分,你会看到只有非常,非常大负荷下的内存块由于同步问题。