質問: データベースの設計について質問です。 例えば50,000,000行のデータが入ったテーブルがあったとして、これを5個のテーブル、それぞれ10,000,000行ずつに分けたとすると速度はどう変わる、もしくは変わらないのでしょうか?
回答: **大量なデータは**適切な分割をする事で早くなります。 特徴的なものとして**パーティショニング**が挙げられます。 特にpostgresは、テーブルを構造体で管理し、物理テーブルをパーティショニング単位で分割しています。 パーティショニング : 用途と利点 > > パーティショニングの利点 > > データを分割することで性能面や管理面に利点があります。特にデータベースのサイズがサーバの搭載メモリよりも大きい場合に効果が期待できます。 > > > パーティショニングの欠点 > > PostgreSQL はパーティショニング専用の組み込み機能を持たず、複数のテーブル/継承/CHECK 制約などを組み合わせて実現しています。それが災いし、パーティショニングを行うと性能や機能が低下する場合があります。回避方法は多くの場合、個々のパーティションを指定したSQLを書くことです。 > > > 但し、アクセスが集中せずランダムになるようなパーティション単位だと逆に遅くなります。