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