データベースにはすでに最大25〜30のテーブルがあり、すべてMyISAMです。これらのテーブルのほとんどは相互に関連しているため、多くのクエリはIDの結合を使用してデータを取得します。
テーブルの1つには700万から1000万のレコードが含まれており、すべてのデータの検索または更新、さらには取得を実行したい場合は遅くなります。今、私は上司に解決策を提案し、テーブルをInnoDBに変換するとパフォーマンスが向上する可能性があると述べました。
また、InnoDBの利点についても説明しました。
とにかくキーで複数のテーブルを結合し、それらは関連しているので、外部キーを使用し、孤立した行を回避するリレーショナルデータベースを使用することをお勧めします。大きなテーブルの1つで約10〜15kの孤立した行を見つけ、手動で削除する必要がありました。
トランザクションのサポートでは、時々大きな更新を実行します。途中でいずれかが失敗した場合は、テーブル全体をバックアップされたものに置き換え、更新を再実行して、すべてのクエリが実行されたことを確認する必要があります。InnoDBを使用すると、クエリ2が失敗した場合に、クエリ1からの変更を元に戻すことができます。
上司から受け取った応答は、InnoDBがMyISAMよりも高速に実行されることを証明する必要があるというものです。私の質問は、2つ以上のことが孤立した行を排除することによって、アプリケーション自体の速度を向上させるのではないかということです。
一般的に、MyISAMはInnoDBよりも高速ですか?
注:MySQL5.5を使用する