自從 MySQL 5.1 之后,默認的存儲引擎變成了 InnoDB 存儲引擎,相對于 MyISAM,InnoDB 存儲引擎有了較大的改變,它的主要特點是:
(推薦學習:mysql教程)
-
支持事務操作,具有事務 ACID 隔離特性,默認的隔離級別是可重復讀(repetable-read)、通過MVCC(并發(fā)版本控制)來實現(xiàn)的。能夠解決臟讀和不可重復讀的問題。
-
InnoDB 支持外鍵操作。
-
InnoDB 默認的鎖粒度行級鎖,并發(fā)性能比較好,會發(fā)生死鎖的情況。
-
和 MyISAM 一樣的是,InnoDB 存儲引擎也有 .frm文件存儲表結構 定義,但是不同的是,InnoDB 的表數(shù)據(jù)與索引數(shù)據(jù)是存儲在一起的,都位于 B+ 數(shù)的葉子節(jié)點上,而 MyISAM 的表數(shù)據(jù)和索引數(shù)據(jù)是分開的。
-
InnoDB 有安全的日志文件,這個日志文件用于恢復因數(shù)據(jù)庫崩潰或其他情況導致的數(shù)據(jù)丟失問題,保證數(shù)據(jù)的一致性。
-
InnoDB 和 MyISAM 支持的索引類型相同,但具體實現(xiàn)因為文件結構的不同有很大差異。
-
增刪改查性能方面,果執(zhí)行大量的增刪改操作,推薦使用 InnoDB 存儲引擎,它在刪除操作時是對行刪除,不會重建表。