Mysql的兩種儲存引擎以及區別

2022-01-11 17:20:57 字數 1988 閱讀 7624

一、mysql的兩種儲存引擎

1、myisam:

①不支援事務,但是整個操作是原子性的(事務具備四種特性:原子性、一致性、隔離性、永續性)

②不支援外來鍵,支援表鎖,每次所住的是整張表

myisam的表鎖有讀鎖和寫鎖(兩個鎖都是表級別):

表共享讀鎖和表獨佔寫鎖。在對myisam表進行讀操作時,不會阻塞其他使用者對同一張表的讀請求,但是會阻塞其他使用者對錶的寫請求;對其進行寫操作時會阻塞對同一表讀操作和寫操作

myisam儲存引擎的讀鎖和寫鎖是互斥的,讀寫操作是序列的。那麼,乙個程序請求某個myisam表的讀鎖,同時另乙個程序也請求同一表的寫鎖,mysql如何處理呢?答案是寫程序先獲得鎖。不僅如此,即使讀請求先到鎖等待佇列,寫請求後到,寫鎖也會插到讀鎖請求之前!這是因為mysql認為寫請求一般比讀請求要重要。這也正是myisam表不太適合於有大量更新操作和查詢操作應用的原因,因為,大量的更新操作會造成查詢操作很難獲得讀鎖,從而可能永遠阻塞。這種情況有時可能會變得非常糟糕! 

③乙個myisam表有三個檔案:索引檔案,表結構檔案,資料檔案

④儲存表的總行數,執行select count(*) from table時只要簡單的讀出儲存好的行數即可

(myisam儲存引擎的表,count(*)速度快的也僅僅是不帶where條件的count。這個想想容易理解的,因為你帶了where限制條件,原來所以中快取的表總數能夠直接返回用嗎?不能用。這個查詢引擎也是需要根據where條件去表中掃瞄資料,進行統計返回的。)

⑤採用非聚集索引,索引檔案的資料域儲存指向資料檔案的指標。輔索引與主索引基本一致,但是輔索引不用保證唯一性。

⑥支援全文索引和空間索引

⑦對於auto_increment型別的字段,在myisam表中,可以和其他字段一起建立聯合索引。

myisam的主索引圖:索引檔案的每個資料域儲存指向資料檔案的指標(每個索引指向了資料位址)

myisam的輻索引:索引檔案的每個資料域儲存指向資料檔案的指標(每個索引指向了資料位址),輻索引不用保證唯一性

①支援事務,支援事務的四種隔離級別;是一種具有事務(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)的事務安全(transaction-safe (acid compliant))型表。

②支援行鎖和外來鍵約束,因此可以支援寫併發

③不儲存總行數;也就是說,執行select count(*) from table時,innodb要掃瞄一遍整個表來計算有多少行。注意的是,當count(*)語句包含 where條件時,兩種表的操作是一樣的。

④對於auto_increment型別的字段,innodb中必須包含只有該字段的索引

⑤delete from table時,innodb不會重新建立表,而是一行一行的刪除

⑥乙個innodb表儲存在乙個檔案內(共享表空間,表大小不受作業系統的限制),也可能為多個(設定為獨立表空間,表大小受作業系統限制,大小為2g),受作業系統檔案大小的限制

⑦主鍵索引採用聚集索引(索引的資料域儲存資料檔案本身),輔索引的資料域儲存主鍵的值;因此從輔索引查詢資料,需要先通過輔索引找到主鍵值,再訪問主鍵索引;最好使用自增主鍵,防止插入資料時,為維持b+樹結構,檔案的大調整。

innodb的主索引圖:(索引位置上儲存的直接是資料本身)

innodb的輻索引圖:

總結大圖:

參考:

mysql的兩種引擎 mysql的兩種儲存引擎

背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...

MySQL兩種儲存引擎區別

innodb引擎 innodb引擎提供了對資料庫acid事務的支援,並且實現了sql標準的四種隔離級別。該引擎還提供了行級鎖和外來鍵約束,他設計的目的是處理大容量資料庫系統,它本身就是基於mysql的完整的資料庫系統,mysql執行時innodb會在記憶體中建立緩衝池,用來緩衝資料和索引。innod...

MySQL 常見的兩種儲存引擎

mysql兩種常見的儲存引擎有 myisam 和 innodb,兩者區別如下 1 count運算 myisam 有快取表的 meta data 元資料,元資料報括行數等,因此其做 count 查詢時不需要消耗多少資源。而 innodb 就沒有這個快取。2 事務和崩潰後的安全恢復 myisam強調的是...