国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

gougoujiang / 1946人閱讀

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

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

一 MyISAM 1.1 MyISAM簡介

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

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

1.2 MyISAM特點

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

不支持事務

不支持外鍵

不支持崩潰后的安全恢復

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

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

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

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

補充概念:

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

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

2.2 MyISAM特點

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

支持事務

支持外鍵

支持崩潰后的安全恢復

不支持全文索引

三 關于二者的對比與總結 3.1 二者的常見對比

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

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

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

3.2 總結

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

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

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69666.html

相關文章

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

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

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

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

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

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

    newtrek 評論0 收藏0

發表評論

0條評論

gougoujiang

|高級講師

TA的文章

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