2011-07-23 8 views
0

私たちは、クライアント(会社)ごとにデータベース(スキーマ)を作成する金融関連のアプリケーションを用意しています。単一のクライアントには多くの行があります。MySqlでクライアントごとに1つのデータベースを作成する

データを別々に(現在のように)保持するか、結合するのが最善かどうかを知りたいです。私たちは、サーバーあたり10000を超えるデータベースを探しています。

すべてのユーザーが同時にオンラインになるわけではないにもかかわらず、同時に10%のユーザーをオンラインで購入することは簡単です。

私の質問は.. 1)複数のデータベースを保持するために深刻な問題(パフォーマンス上の問題)はありますか? 2)企業の財務データに関しては、異なるデータベースを保持するのが一般的な慣行ですか?

答えて

1

「10000データベース/サーバ」 - それはたくさんのデータベースです! [DBごとに5人のユーザーと10%のアクティブユーザーでもサーバーあたりのアクティブなユーザー接続数は5000人だと仮定します]

ここでの主な関心事はおそらく各クライアントのデータベースのセキュリティです。それらを別々に保つことで、セキュリティの管理が容易になります。

のご質問にお答えするには:

  1. いいえ、(サーバーで処理中のトランザクションの莫大な量以外の)複数のデータベースを持つパフォーマンス上の問題はありません。実際、行範囲ロックが保持されるという点では、パフォーマンスが向上する可能性があります。

  2. はい、財務データ用に別々のデータベースを保管するのが一般的です。セキュリティは、企業のサイロでバックアップを処理することがよくあります。

+0

私はそれがサーバーの性能に依存していると言いますか?私はここでこのことに同意するだろうが、それはあなたがセキュリティをどのように管理しようとしているのか、それを一般的にどのようにアクセスするのかによって異なる。 – Andy

+0

セキュリティはアプリケーション状態で処理され、 dbにアクセスするために使用されます。アプリケーションが接続するデータベースを決める場所は1つしかないので、セキュリティを心配する必要がある場所が1つあります。また、他の企業のデータが(SQLクエリで)選択されることを心配する必要がないので、アプリケーション開発は簡単です。私の唯一の関心事は、多数の接続とデータベースによるパフォーマンスの低下量です。 – Rajesh

関連する問題