1

仕事でWebアプリケーションを継承しました。ユーザー/アカウントが追加されるたびに、新しいMySQLデータベースが作成されます。各データベースは通常300MBまで増加しますが、それ以上は増加しません。AWS RDSで実行されている271のデータベースでは、Webアプリケーションは糖蜜のように実行されています。

データの90%を保持する各データベースに1つのテーブルがあり、すべてのデータベースで同じデータを保持します。したがって、このテーブルからデータを取得して別のデータベースに配置し、すべてのアカウントをこのデータベースに接続することもできます。これにより、各データベースのサイズが大幅に縮小されます。

ただし、データベースが多すぎるため、サーバーの速度が上がらないのではないかと心配しています。私はDB管理者ではありません。私の考えが意味をなさない場合は、事前にお詫び申し上げます。しかし、私は非常に学びたいと思っています。

そのような状況で、データベースの数を減らすことを試みる必要がありますか、それとも各データベースのサイズを減らすことを試みる必要がありますか?各データベースのサイズを縮小することは本当に役立ちますか?

4

2 に答える 2

2

データベースの数が直接問題になるのではないかと思います。しかし、それは悪いデザインの明らかな兆候であり、他の場所に問題があるに違いありません。たとえば、多くの最適化はテーブル内で可能ですが、テーブル間では不可能です。したがって、同じタイプの情報を常に操作しているが、異なるテーブルに保持されている場合、それは途方もなく遅くなります。

于 2011-10-19T01:50:56.183 に答える
0

データベースの数を1つに減らすことを(真剣に)検討する必要があります

ユーザーごとに単一のデータベースの概念は、私が聞いた中で最も...興味深い...ものの1つです-それはPaxがそこに異常な量のタクトを示しています:-)

異なるユーザーを互いに分離するための特定の法的要件がない限り、これを行う正当な理由は実際にはありません。特に、データベースの拡張を期待する場合はなおさらです。

300M×300アカウントは約90Gであり、それでも物事のスキームでは比較的小さなデータベースです。

あなたが述べたように、その情報の多くは複製されているので、結合したときにその近くには到達しません。その300Mの90%が共有されている場合、30Mに300アカウントと270Mの共有を掛けたもの、つまり10G未満になります。

私たちの構成テーブルのいくつかはそれよりも大きいと確信しています:-)

于 2011-10-19T01:57:43.700 に答える