Skip to content
TopicTracker
出典 HackerNews原文を表示
翻訳言語翻訳言語

テーブルが多すぎるとパフォーマンスに悪影響を及ぼす

PostgreSQLにおいてテーブル数が多すぎると、クエリプランナの処理時間増加、キャッシュ効率の低下、バキューム処理の遅延など、様々なパフォーマンス問題が発生する。本記事では、多数のテーブルがもたらす具体的な悪影響とその対処法について解説している。

背景メモ

- データベースソフト「PostgreSQL」に関する技術記事。著者はPostgreSQL専門企業CyberTecのコンサルタント。ORM(オブジェクト・リレーショナル・マッピング)フレームワークを使うエンジニアが、設計上の安易さからテーブル(表)を細かく分割しすぎる問題を指摘している。 - 典型例:Ruby on Railsの「has_many :through」やPythonのDjangoなどのORMは関連データを自動でJOINするが、テーブル数が増えるとクエリ性能が急激に悪化する。数百〜数千テーブルになると、テーブル自体のメタデータ管理(カタログ肥大)やバックアップにも支障が出る。 - PostgreSQLはテーブル数が増えても他DBよりは頑健だが、それでも1万テーブルを超えると顕著なパフォーマンス低下が見られる。著者は、学習的要素(e-learning)のテーブルが2400にも及んだ実例を挙げ、本来はJSONBカラムや配列で済む設計をテーブル分割していると批判。 - 結論:テーブル数はせいぜい数百に抑え、それ以上増える場合は設計そのもの、特にスキーマ設計や非正規化を見直すべき。

関連記事