中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析MySQL常見的兩種存儲引擎MyISAM與InnoDB

發布時間:2021-10-25 10:45:11 來源:億速云 閱讀:208 作者:柒染 欄目:大數據

本篇文章為大家展示了如何分析MySQL常見的兩種存儲引擎MyISAM與InnoDB,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一 MyISAM

1.1 MyISAM簡介

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

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

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是最好的選擇。

上述內容就是如何分析MySQL常見的兩種存儲引擎MyISAM與InnoDB,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东莞市| 成都市| 徐汇区| 京山县| 乐昌市| 平远县| 芜湖县| 石屏县| 邹城市| 凤阳县| 前郭尔| 铜鼓县| 沧源| 绵阳市| 太谷县| 乌鲁木齐县| 汉阴县| 眉山市| 平安县| 太康县| 会同县| 广水市| 文化| 调兵山市| 石狮市| 卫辉市| 宜春市| 宜黄县| 桐柏县| 介休市| 亳州市| 南漳县| 朝阳县| 兰州市| 申扎县| 高唐县| 枣庄市| 囊谦县| 东台市| 上思县| 文安县|