2017-10-20 6 views
2

は、多数のユーザーがいる大きなデータを扱うPostgresベースのアプリケーションを設計しています。ほとんどの読取りでは3つの表のみを使用するようにデータがモデル化されているため、すべてのユーザーが同じレコードを同時に参照しています。同時読み取りがPostgresにどのような影響を与えますか?

読み込み(書き込みではない)に関して、多くの並行読み込みはdbを遅くするか、または一度メモリに保存すると、Postgresはすべての同時ユーザーに同じビューを多くの遅延やリソース消費なしで表示しますか?

同じレコードの読み込み回数が少なくなったり、一度メモリにデータが表示されることはありませんか?

おかげで、

アレックスグラロス

答えて

4

多くの同時操作を行うには、ダウン遅いデシベルを読み込み、または一旦メモリに、Postgresは多くの遅延やリソースなしで、すべての同時ユーザーに同じビューを表示する場合であります消費?

同じデータが何度も繰り返し要求された場合は、それがメモリに保持されます(Postgresには十分なメモリがあります)。

同じレコードが遅いのPostgresの読み込みの数がダウン

何も同時トランザクションがで同じデータを要求するときにはいオーバーヘッド関与があり、自由のために来ていない点があります正確にはと同じです。メモリ内のデータブロックへのアクセスは、ロック(非常に軽いですが)、ラッチ、およびセマフォを介して同期する必要があります。

完全なデータがメモリに格納されているシステムでは、CPUが制限要因になります。最近のPostgresのバージョンは、複数の同時セッションによるスケーラビリティの点で大幅に改善されていますので、最新バージョン(9.6またはそれ以上の10.0)を使用してください。

これは同じデータブロックをで要求する複数のトランザクションを意味し、正確にはでも同じナノ秒です。トランザクション(セッション、接続)が通常これらの3つのテーブルの異なる部分を要求すると、非常に重い負荷のもとでのみメモリブロックの同期化による問題が発生します。

関連する問題