このドキュメントからhttp://www.postgresql.org/docs/current/static/explicit-locking.html
PostgreSQL には、テーブル内のデータへの同時アクセスを制御するためのさまざまなロック モードが用意されていることは知っていました。
私の問題は、多くのセッションが自分の DB にアクセスすることですが、40 列の大きなテーブルを 1 つ作成するか、列が少ない (1 対 1 の関係) 多数のテーブルを作成するかを混乱させます。
データを選択するときにすべてを選択するため ---> INNER JOIN を使用して多くのテーブルから選択すると時間がかかりますが、1 つの大きなテーブルから選択する方が時間がかかりません。したがって、多くのテーブルを使用している場合、php の応答が遅くなります。
しかし、多くのセッションがテーブル内のデータを更新している間にテーブルを 1 つだけ使用すると、コマンド UPDATE、DELETE、および INSERT がターゲット テーブルで ROW EXCLUSIVE ロック モードを取得するため、デッドロックや遅延が発生するのではないかと心配します。一般に、このロック モードは、テーブル内のデータを変更するコマンドによって取得されます。
誰かが私が行うべき最善のアプローチを提案できますか? 1 つの大きなテーブルですか、それとも複数のテーブルですか。