Mysql兩種常見的引擎對(duì)比

Innodb

    1、支持事務(wù),支持ACID。更適用于處理大量的小事務(wù)。默認(rèn)可重復(fù)讀級(jí)別。
    2、行鎖,支持非鎖定鎖,即默認(rèn)讀取操作不產(chǎn)生鎖。(MVCC版本號(hào)機(jī)制)用可重復(fù)讀的非阻塞的方式!
  • MVCC(Multi-Version Concurrent Controll多版本并發(fā)控制)的技術(shù)來實(shí)現(xiàn)非阻塞式讀,在這個(gè)模式下,數(shù)據(jù)庫(kù)會(huì)為每個(gè)數(shù)據(jù)記錄維護(hù)多個(gè)版本。在可重復(fù)讀隔離級(jí)別下,事務(wù)第一次查詢記錄的時(shí)候,會(huì)記錄一個(gè)時(shí)間點(diǎn),在該事務(wù)內(nèi)如果再次查詢相同的數(shù)據(jù)的話,事務(wù)只會(huì)取上一次查詢的記錄版本,這樣在不需要對(duì)數(shù)據(jù)解鎖的情況下就能實(shí)現(xiàn)可重復(fù)讀的隔離級(jí)別了。但是在我開來這個(gè)是沒有意義的,不能避免不可重復(fù)度讀的并發(fā)問題。-----解決方法看其他博客。
    3、存儲(chǔ)采用了聚集的方式,每張表的存儲(chǔ)都是由主鍵聚集成B+樹的方式。
    4、使用表空間進(jìn)行數(shù)據(jù)存儲(chǔ)。

        4.1、表空間由innodb_file_per_table參數(shù)決定----------ON:獨(dú)立表空間:會(huì)生成一個(gè)tablename.idb的文件

                                                           OFF:系統(tǒng)表空間:ibdataX,X代表一個(gè)數(shù)據(jù)

        4.2、系統(tǒng)表空間和獨(dú)立表空間應(yīng)該如何選擇:(5.5之前是存儲(chǔ)在系統(tǒng)表空間中,5.6之后是獨(dú)立表空間)

            4.2.1、系統(tǒng)表空間無法簡(jiǎn)單的收縮文件大小。如果想要收縮系統(tǒng)表空間的大小只能:

                   把所有innodb表導(dǎo)出后,刪除innodb相關(guān)的表空間后,再重啟mysql,進(jìn)行表空間的重建,然后再導(dǎo)入數(shù)據(jù)。------復(fù)雜而且耗時(shí)間,在復(fù)雜的系統(tǒng)中無法實(shí)現(xiàn),所以就會(huì)造成大量的磁盤空間的浪費(fèi)(只增不減)和磁盤碎片

            4.2.2、獨(dú)立表空間可以通過optimize table命令收縮系統(tǒng)文件。

                   就是對(duì)一些老數(shù)據(jù)清理完了之后執(zhí)行以下optimize table的命令,就能收縮表。其實(shí)也是對(duì)整個(gè)表進(jìn)行重建,但是它重建的只是自己的表而不是整個(gè)系統(tǒng)表,而且不需要重啟mysql服務(wù)器,而且不影響這個(gè)表的正常訪問。

            4.2.3、系統(tǒng)表空間會(huì)產(chǎn)生IO瓶頸

                   系統(tǒng)表空間當(dāng)多個(gè)請(qǐng)求同時(shí)對(duì)系統(tǒng)表空間進(jìn)行刷新時(shí),在文件系統(tǒng)的角度上實(shí)際上是順序執(zhí)行的。

            而獨(dú)立表空間可以同時(shí)向多個(gè)文件刷新數(shù)據(jù),所以在文件寫入的時(shí)候可以向多個(gè)文件刷新數(shù)據(jù),增加IO的性能

MyISAM

1、不支持事務(wù)

2、表鎖設(shè)計(jì)

3、支持全文索引

4、相對(duì)于Innodb比較簡(jiǎn)單,所以效率上優(yōu)于Innodb,小型應(yīng)用可以使用。當(dāng)數(shù)據(jù)有大量的插入、更新操作而查詢比較少,就要用Innodb,反之用MyISAM(適用于讀多寫很少的應(yīng)用場(chǎng)景,實(shí)際開發(fā)中很少用到)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容