MySQLデータベースは、ここでのMyISAMとInnoDBのに焦点を当てて、複数のデータベース・エンジンを持つように選択することができます
1、MyISAMテーブル
得られる改善に基づく:(1)MyISAMテーブルは、バージョン5.5のデータベースエンジンの前にデフォルトのMySQLで、早期ISAM(シーケンシャルアクセスメソッドインデックスインデックスシーケンシャルアクセス方法)です。
(2)特徴:
長所:優れた性能、フルテキストインデックス、圧縮、空間的な機能やその他の機能
欠点は:トランザクションと行レベルのロックをサポートしていない、最大の問題は、データベースがクラッシュ後に復元することができないことです
2、InnoDBの
(1)InnoDBはISAMおよびMyISAMのと比較して、デフォルトのデータベースエンジンの後にMySQLバージョン5.5で、最大の利点および利益は、データベースのトランザクション機能を高めることです。
(2)特徴:
長所:サポートサービスと行レベルのロック、データベースのクラッシュ後の回復のためのサポート
短所:フルテキストインデックスをサポートしていません。
図3に示すように、2つのデータベースエンジンの比較
行レベルのロックをサポートしていない、のMyISAM支持テーブルロック:(1)ロック粒度をサポート。InnoDBは、より高い並行性を提供することができる、行レベルのロックをサポートします。
(2)トランザクションをサポートするかどうか:MyISAMテーブルには、トランザクション、InnoDBのサポートトランザクション操作をサポートしていません。
後に回収可能かどうか(3)データベースのクラッシュ:回復不能のMyISAM、InnoDBのデータベースがクラッシュした後に復元することができますが。
MyISAMテーブルは、外部キーをサポートしていない、とInnoDBの外部キーのサポート:(4)外部キーをサポートするかどうか。
(5)フルテキストインデックスをサポートするかどうか:MyISAMテーブルは、フルテキストインデックスをサポートしているため、パフォーマンスが優れている。しかし、InnoDBは、フルテキストインデックスをサポートしていません。
図4は、追加:行レベルのロッキングとテーブル・レベルのロッキング
行レベルのロック。
各動作のためにデータの行をロックします。大きなオーバーヘッド、低速ロック、デッドロックが存在するであろう、最小サイズ、ロック競合の最も低い確率だけでなく、並行性の最高度をロックします。
テーブル・レベルのロック。
各操作は、テーブル全体をロックします。、高速のオーバーヘッド小さなロック、デッドロックが発生しない、大きなサイズ、同時実行の最高、最低度のロック競合の確率をロックします。