2013-02-15 6 views
24

postgresを使用してマルチテナントにソリューションを実装している最中に、最大スキーマが1つのpostgresデータベースにどれくらいあるかに関する回答が必要でした。ポストグルで作成できるスキーマの数

+0

私はこの質問を考えられる設計上の瑕疵の兆候と考えています。確かに、クライアントを示す列を持つ1つのデータベースを使用できます。 – Bohemian

+8

単一のスキーマ設定でクライアント列をテーブルに追加するのと同じように、複数のスキーマを使用するには設計上のプラスとマイナスがあります。私の意見ではそれは黒と白ではありません。 – Kuberchaun

+3

私はこのオプションを持っていましたが、Postgresは複数のスキーマに対して非常に強力な機能を持っていますので、すべてのクエリの前に特定のクライアントをコーディングし検索するのではなく、 –

答えて

29

何千ものスキーマをテストしました。何千ものテーブルが問題なくテストされました。起動時に完全なオブジェクトツリーを読んによるスロースタート、pg_dumpのと

  • 問題 - - バックアップのスロースタート - オブジェクトをロックするために多くの時間を必要とするいくつかの既知の問題GUI管理と

    • 問題があります。
  • +0

    あなたの経験を共有してくれてありがとう!あなたが「千人」と言うとき、おおよその価値は何ですか? –

    +4

    @MarcioSimao - 約1万。 2年後、実際の制限は管理とバックアップのための基本的なツールにあります。 pg_dump、pg_restoreは、1つのトランザクション内で処理されるオブジェクトの数が20000個を超える場合に問題が発生することがあります。別の問題は、膨大なスキーマで膨大なキャッシュが発生することです。 Postgresはデータベースごとにローカルキャッシュに大量のデータを保持します。大きなスキーマで接続を再利用すると、このキャッシュは大きくなりすぎることもありますが、時には遅くなることもありますが、それはpooler swに依存します。 –

    +1

    @PavelStehuleどのようにpg_dumpの問題を修正しましたか?どのようなヒント?私は同じ問題に直面しています –

    関連する問題