2

私たちの Web サイトには、毎日何百人もの訪問者がいて、1 日に何万ものクエリがあります。そのため、データベース内の一部のテーブルはめったに更新されず、一部のテーブルは 1 分間に数回更新され、一部のテーブルは 1 秒間に最大 10 回更新されます。
MyISAM は更新にテーブル レベルのロックを使用し、InnoDb は行レベルのロックを使用します。
したがって、私が理解しているように、頻繁な同時更新 (1 秒あたり数回の更新) を伴うテーブルの場合は InnoDb にすることをお勧めします。また、他のテーブルの場合 (もちろんトランザクションと外部キーが必要ない場合) は問題ありません。 MyISAM エンジン。
私の考えは正しいですか?

4

2 に答える 2

6

MyISAMは読み取りと書き込みが高速ですが、同時には高速ではありません。つまり、大量の書き込みを行う必要がある場合は高速になりますが、同時に読み取りを行う人もいる場合は、リーダーとライターが互いにブロックし、同時実行性の問題が発生する可能性があります。このようなシナリオではInnoDBを使用する必要があります。一部のユースケースでは低速ですが、MyISAMよりも一般的に信頼性が高いと考えられているため、ほとんどのmysqlgurusはデフォルトでInnoDBを使用することをお勧めします。

于 2009-11-12T13:29:32.717 に答える
0

はい、そう思います。私自身はMySQLの初心者ですが、インストールすると、innoDBはトランザクション、運用システム用に最適化されており、MyISAMはレポート/DWシステムに最適であると説明されました。

于 2009-11-12T13:30:23.497 に答える