私のPHPアプリケーションでは、1台のサーバー上のMySQLMyISAMパーティションテーブルに200GBの470M行のテーブルがあります。使用量には、70%の書き込み/ 30%の読み取りが含まれます。パフォーマンスを改善しようとしています。現在の主な問題は、テーブルレベルのロックによる読み取り/書き込みの競合です。私は2つのオプションのどちらかを決定しようとしています:
- MySQLをInnodbに変更します。長所:テーブルレベルのロックを回避します。短所:はるかに多くのディスク容量が必要であり、これらほど高速ではない可能性のあるより大きなHDが必要です(現在、RAID10 6 * 300GB SAS 15kを使用しています)。
- データをNoSQLデータベースに移動します。主な欠点:学習曲線。これまでNoSQLを使用したことはありません。
問題は、データのシャーディングを回避しようとしている一方で、RDMS MySQLを単純なKey-Valueストレージとして使用しているという事実を考慮すると、2つのアプローチのパフォーマンスに大きな違いがあるのか、それともNoSQLの主な利点は次の場合にあるのかということです。分散システムに移行しますか?