0

私が管理しているデータベースの将来について勉強しています。現在、InnoDB と MyISAM テーブルを使用して MySQL を実行している 1 つのデータベース サーバーがあります。私は指標を注意深く見ていますが、これが永遠に持続可能ではないことがわかります. 次はどこへ行く?Cassandra などのソリューションを確認しましたが、SQL アプローチに固執したいので、それについてはわかりません。また、NDB クラスタとフェデレーテッド データベース ソリューションをレビューしましたが、それらについて良いことを言う人が誰もいないことに気付きました。基本的には、中間的な解決策に関するアドバイスを探しています。数十台の DB サーバーで動作する巨大なマルチノード アレイはまだ必要ありませんが、1 台のサーバーでは限界に達しようとしています。DB アーキテクチャが余分なパワーから十分に利益を得ていることを確認せずに、別のサーバーを山積みにしたくはありません。単一のサーバーを超えて移行するときが来たときに何を提案し、この移行をどのように管理するか. 助けてくれる人に感謝します。

より適切に説明するために編集します。現在、約 100 のテーブルがあります。多くの結合操作を実行して、エンド ユーザーが表示する必要があるデータを収集します。そのため、ほとんどのクエリは少なくとも 2 つのテーブルを結合して操作を完了します。データセットはまだそれほど大きくなく、数百メガバイトしかありませんが、データは、各テーブルに毎日数回の書き込みがあり、最も重いテーブルには 1 日に約 1000 回の書き込みがあるようにアクセスされます。おそらく 1 日あたり数十万回の読み取りも行われているため、読み取り回数は書き込み回数を約 9 対 1 で上回っています。

4

1 に答える 1

1

最初の解決策:

  • インデックスは長い道のりを行く
  • プロファイリング ソフトウェアを使用して遅いクエリを見つけて最適化する
  • ホスティング会社によっては、通常、サーバーの RAM/CPU を更新できます。

2 番目のソリューション:

  • 読み取りと書き込みを 2 つのデータベースに分割します。(PHP を使用しているかどうかはわかりませんが、PHP には、コードを変更することなく自動的に分割するプラグインがありますhttp://php.net/manual/en/mysqlnd-ms. rwsplit.php )
  • memcache などのソフトウェアを使用して、頻繁に照会されるが頻繁には更新されないデータベース情報を保存します
于 2013-04-08T20:43:51.593 に答える