調べてみると、MySQL エンジンのいくつかが innodb と MyISAM であることがわかりました。もしかしたら、あと数個かもしれません。私の質問は、これらのデータベース エンジンとは何ですか?
異なる MySQL エンジンの違いは何ですか? さらに重要なことは、どちらを使用するかをどのように決定するのですか?
調べてみると、MySQL エンジンのいくつかが innodb と MyISAM であることがわかりました。もしかしたら、あと数個かもしれません。私の質問は、これらのデータベース エンジンとは何ですか?
異なる MySQL エンジンの違いは何ですか? さらに重要なことは、どちらを使用するかをどのように決定するのですか?
mysql> SHOW ENGINES;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
MySQL を使用する必要がある場合、個人的には常に InnoDB を使用します。MyISAM はサポートしていませんが、トランザクションと外部キーをサポートしています。
MyISAM と InnoDB は、最も一般的に使用されるエンジンです。
MyISAM は InnoDB よりわずかに高速で、検索機能の統合に非常に役立つ FULLTEXT インデックスを実装しています。MyISAM は処理されず、大きな欠点である外部キー制約を実装していません。
ただし、両方の長所を利用して、異なるストレージ エンジンでテーブルを作成できます。一部のソフトウェア (WordPress だと思います) は、ほとんどのデータ (ページ間の関係、バージョンなど) に Inno を使用します。投稿のレコードには、MyISAM を使用する別のコンテンツ テーブル内のレコードにリンクする ID が含まれています。このようにして、コンテンツは最高の検索機能を持つテーブルに格納され、他のほとんどのデータはデータの整合性を確保するテーブルに格納されます。
私があなたなら、最も信頼できる Inno を選びます。必要な場合は、特定の目的にのみ MyISAM を使用してください。
新しいテーブルを作成するときに、デフォルトで InnoDB を使用するようにデータベースを設定できます。
さまざまなストレージ エンジンが利用可能です。MyISAM または InnoDB エンジン タイプを使用しない理由はほとんどありません。MyISAM はほとんどの状況で機能しますが、検索や選択に比べて更新や挿入の数が多い場合は、InnoDB エンジンのパフォーマンスが向上します。InnoDB から最高のパフォーマンスを得るには、サーバーのパラメーターを微調整する必要があります。それ以外の場合は、使用しない理由はありません。
MERGE エンジンは、同じように定義された複数のテーブルからデータをクエリする非常に効果的な方法です。MEMORY エンジンは、ディスク ベースのエンジンでは検索が効率的でないデータに対して多数の複雑なクエリを実行するための最良の方法です。CSV エンジンは、他のアプリケーションで使用できるデータをエクスポートする優れた方法です。BDB は、頻繁にアクセスされる一意のキーを持つデータに最適です。