web-dev-qa-db-ja.com

MyISAMからInnoDBに切り替えると、コメントテーブルのパフォーマンスが向上しますか?

私が作ったサイトは、短時間でたくさんのコメントを受け取るので、5分か10分で100個のコメントが残るかもしれません。

特に最近のコメントウィジェットと組み合わせると、これはデータベースにかなりの負荷をかけるようです - 私はサーバー負荷が急速に最大40+まで渦巻くのを見ました、そしてmtopを使うとたくさんのブロックされたクエリを見ることができます。

それで、私はMyISAMをストレージエンジンとして使っています。それは書き込みのためにテーブル全体をロックします。行ロックを使用している(私が信じている)InnoDBへの切り替えは改善するでしょうか? MySQLのドキュメントを見ると、同じデータベース内で両方のエンジンを使用することは完全に可能です。

だから、質問:

InnoDBへの切り替えは、私が説明したことに対する合理的な解決策のように思えますか? WP特定の経験/ベンチマークはありますか。

6
anu

MyISAMは書き込みのためにページ全体をロックし、ACID準拠ではありませんが、InnoDBはあなたが指摘したように行をロックすることに固執し、ACID準拠です。

これは、速くてデータが破損する可能性が低い場合のように、大量の書き込みがある場合はより困難になります。

私の経験では読み取りには時間がかかりますが、同時接続の処理は向上しています。

カタログも雑然としています。 (私はMyISAMからInnoDBに切り替えた大きなDBを1日持っていましたが、2GBで膨らんだカタログ、または私のDBのサイズはわかりませんでした。インデックスの作成などが正しくフラッシュされませんでした。)

とにかく...あなたの現在の負荷では、InnoDBはオブジェクトキャッシュと一緒にmemcachedされているのでオプションです。

4