成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

MySQL常見的兩種存儲引擎:MyISAM與InnoDB的愛恨情仇

gougoujiang / 1954人閱讀

摘要:雖然性能極佳,而且提供了大量的特性,包括全文索引壓縮空間函數(shù)等,但不支持事務(wù)和行級鎖,而且最大的缺陷就是崩潰后無法安全恢復。

Java面試通關(guān)手冊(Java學習指南,歡迎Star,會一直完善下去,歡迎建議和指導):https://github.com/Snailclimb/Java_Guide

一 MyISAM 1.1 MyISAM簡介

MyISAM是MySQL的默認數(shù)據(jù)庫引擎(5.5版之前),由早期的 ISAM (Indexed Sequential Access Method:有索引的順序訪問方法)所改良。雖然性能極佳,而且提供了大量的特性,包括全文索引、壓縮、空間函數(shù)等,但MyISAM不支持事務(wù)和行級鎖,而且最大的缺陷就是崩潰后無法安全恢復。不過,5.5版本之后,MySQL引入了InnoDB(另一種數(shù)據(jù)庫引擎)。

下面這張圖只是想表達的意思是現(xiàn)在大多數(shù)時候我們使用的都是InnoDB存儲引擎,但是在某些情況下使用MyISAM更好,比如:MyISAM更適合讀密集的表,而InnoDB更適合寫密集的的表。 在數(shù)據(jù)庫做主從分離的情況下,經(jīng)常選擇MyISAM作為主庫的存儲引擎。

1.2 MyISAM特點

不支持行鎖(MyISAM只有表鎖),讀取時對需要讀到的所有表加鎖,寫入時則對表加排他鎖;

不支持事務(wù)

不支持外鍵

不支持崩潰后的安全恢復

在表有讀取查詢的同時,支持往表中插入新紀錄

支持BLOB和TEXT的前500個字符索引,支持全文索引

支持延遲更新索引,極大地提升了寫入性能

對于不會進行修改的表,支持 壓縮表 ,極大地減少了磁盤空間的占用

補充概念:

Mysql的行鎖和表鎖( 鎖是計算機協(xié)調(diào)多個進程或純線程并發(fā)訪問某一資源的機制)
表級鎖: 每次操作鎖住整張表。開銷小,加鎖快;不會出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低;
行級鎖: 每次操作鎖住一行數(shù)據(jù)。開銷大,加鎖慢;會出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高;
二 InnoDB 2.1 MyISAM簡介

InnoDB是MySQL的默認數(shù)據(jù)庫引擎(5.5版之后),2006年五月時由甲骨文公司并購。與傳統(tǒng)的ISAM與MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事務(wù)(Transaction)功能。

2.2 MyISAM特點

支持行鎖,采用MVCC來支持高并發(fā),有可能死鎖

支持事務(wù)

支持外鍵

支持崩潰后的安全恢復

不支持全文索引

三 關(guān)于二者的對比與總結(jié) 3.1 二者的常見對比

1) count運算上的區(qū)別: 因為MyISAM緩存有表meta-data(行數(shù)等),因此在做COUNT(*)時對于一個結(jié)構(gòu)很好的查詢是不需要消耗多少資源的。而對于InnoDB來說,則沒有這種緩存。

2) 是否支持事務(wù)和崩潰后的安全恢復: MyISAM 強調(diào)的是性能,每次查詢具有原子性,其執(zhí)行數(shù)度比InnoDB類型更快,但是不提供事務(wù)支持。但是InnoDB 提供事務(wù)支持事務(wù),外部鍵等高級數(shù)據(jù)庫功能。 具有事務(wù)(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)的事務(wù)安全(transaction-safe (ACID compliant))型表。

3)是否支持外鍵: MyISAM不支持,而InnoDB支持。

3.2 總結(jié)

MyISAM更適合讀密集的表,而InnoDB更適合寫密集的的表。 在數(shù)據(jù)庫做主從分離的情況下,經(jīng)常選擇MyISAM作為主庫的存儲引擎。

一般來說,如果需要事務(wù)支持,并且有較高的并發(fā)讀取頻率(MyISAM的表鎖的粒度太大,所以當該表寫并發(fā)量較高時,要等待的查詢就會很多了),InnoDB是不錯的選擇。如果你的數(shù)據(jù)量很大(MyISAM支持壓縮特性可以減少磁盤的空間占用),而且不需要支持事務(wù)時,MyISAM是最好的選擇。

歡迎關(guān)注我的微信公眾號:"Java面試通關(guān)手冊"(一個有溫度的微信公眾號,無廣告,單純技術(shù)分享,期待與你共同進步~~~堅持原創(chuàng),分享美文,分享各種Java學習資源)

最后,就是使用阿里云服務(wù)器一段時間后,感覺阿里云真的很不錯,就申請做了阿里云大使,然后這是我的優(yōu)惠券地址.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69666.html

相關(guān)文章

  • MySQL常見兩種存儲引擎MyISAMInnoDB愛恨情仇

    摘要:雖然性能極佳,而且提供了大量的特性,包括全文索引壓縮空間函數(shù)等,但不支持事務(wù)和行級鎖,而且最大的缺陷就是崩潰后無法安全恢復。 一 MyISAM 1.1 MyISAM簡介 MyISAM是MySQL的默認數(shù)據(jù)庫引擎(5.5版之前),由早期的 ISAM (Indexed Sequential Access Method:有索引的順序訪問方法)所改良。雖然性能極佳,而且提供了大量的特性,包括全...

    BWrong 評論0 收藏0
  • 關(guān)于MySQL知識點面試常見問題都在這里

    摘要:串行最高的隔離級別,完全服從的隔離級別。但是這將嚴重影響程序的性能。此外,垂直分區(qū)可以簡化表的結(jié)構(gòu),易于維護。 我自己總結(jié)的Java學習的一些知識點以及面試問題,目前已經(jīng)開源,會一直完善下去,歡迎建議和指導歡迎Star: https://github.com/Snailclimb/Java_Guide 書籍推薦 《高性能MySQL : 第3版》 文字教程推薦 MySQL 教程(菜鳥教程...

    hss01248 評論0 收藏0
  • 關(guān)于MySQL知識點面試常見問題都在這里

    摘要:串行最高的隔離級別,完全服從的隔離級別。但是這將嚴重影響程序的性能。此外,垂直分區(qū)可以簡化表的結(jié)構(gòu),易于維護。 我自己總結(jié)的Java學習的一些知識點以及面試問題,目前已經(jīng)開源,會一直完善下去,歡迎建議和指導歡迎Star: https://github.com/Snailclimb/Java_Guide 書籍推薦 《高性能MySQL : 第3版》 文字教程推薦 MySQL 教程(菜鳥教程...

    newtrek 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<