私の時間のほとんどは、包括的なデータベースパフォーマンスヘルスチェックでクライアントと協力することに費やされています。 。ヘルスチェックの取り組みの最も良い部分は、私が多くの新しい人々に会い、多くの異なる話を共有できるようになることです。最近、SQL Serverと一緒にMySQLにも取り組んでいるDBAの1人から、MySQLに適したエンジンは何ですか(MyISAMまたはInnoDB)と尋ねられました。
MySQLバージョン5.5以降、MySQLチーム自体がすでにこの質問を決定していると思うので、2019年に尋ねるのは非常に興味深い質問だと思います。 MySQL 5.5以降、デフォルトのエンジンとしてすでにInnoDBを選択しています。
InnoDBを使用する主な5つの理由は次のとおりです
- InnoDBは、パフォーマンスにとって重要な行レベルのロックをサポートしています。 MyISAMはテーブルレベルのロックのみをサポートしており、テーブルが頻繁に更新されると大きなボトルネックが発生します。
- InnoDBは、eコマースだけでなく銀行業務にも関与するミッションクリティカルなデータベースアプリケーションで重要なトランザクションを実装します。
- InnoDBは、外部キーのような関係制約をサポートしているため、サポートされていないMyISAMよりもリレーショナルデータベースに適しています。
- InnoDBはACID(Atomicity、Consistency、Isolation、Durability)トランザクションをサポートしているため、MyISAMがサポートしていないRDBMSルールに完全に準拠しています。
- InnoDBは、メモリバッファープールを使用して内部的にストレージマネージャーを使用してインデックスとベーステーブルを管理します。これは、パフォーマンスの点で非常に効率的です。 MyISAMは、主にベーステーブルにディスクファイルを使用しますが、パフォーマンスは最適化されていません。
エンジンを選択する必要がある場合は、MySQLにデフォルトのエンジンを決定させるか、RDBMSの最新機能を備えたInnoDBを選択することをお勧めします。
現在、このトピックに関するホワイトペーパーを作成しています。ホワイトペーパーが公開されたら、それを皆さんと共有して、読んでいただけるようにします。