資料庫 mysql儲存引擎

2021-08-25 08:15:58 字數 1656 閱讀 9769

mysql常用的四種引擎的介紹

(1):myisam儲存引擎

不支援事務、也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有要求或者以select,insert為主的應用基本上可以用這個引擎來建立表,適合寫多的情況。

frm儲存當前資料表的結構,myd儲存當前表的資料,myi儲存當前資料表的索引

支援表級鎖,有兩種表模式,讀鎖和寫鎖

myisam:如果執行大量的select,myisam是更好的選擇

(1)做很多count 的計算;(2)插入不頻繁,查詢非常頻繁;(3)沒有事務。

(2)innodb儲存引擎

該儲存引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比myisam引擎,寫的處理效率會差一些,並且會占用更多的磁碟空間以保留資料和索引。 

innodb儲存引擎的特點:支援自動增長列,支援外來鍵約束

innodb 事務 外來鍵 行級鎖 .frm:表結構 .ibd:資料和索引

行級鎖(開銷大,加鎖慢,會出現死鎖,死鎖一般會自動檢測到,會讓乙個事務去釋放鎖並回退,另乙個事務去獲得鎖,鎖粒度比較小,適合併發量大的寫入),

所模式有共享鎖和排他鎖。

執行update delete insert 語句時會加排他鎖,執行select語句時不會加任何鎖

如果兩個執行緒同時訪問時,加共享鎖時會出現死鎖,所以一般情況下會加排它鎖

update,出於效能方面的考慮,應該使用innodb表

(1)可靠性要求比較高,或者要求事務;(2)表更新和查詢都相當的頻繁,並且行鎖定的機會比較大的情況。

(3):memory儲存引擎

memory:只存表結構,支援hash索引 資料儲存記憶體dbms, 只有乙個frm表結構。

memory儲存引擎使用存在於記憶體中的內容來建立表。每個memory表只實際對應乙個磁碟檔案,格式是.frm。memory型別的表訪問非常的快,因為它的資料是放在記憶體中的,並且預設使用hash索引,但是一旦服務關閉,表中的資料就會丟失掉。 

memory儲存引擎的表可以選擇使用btree索引或者hash索引,兩種不同型別的索引有其不同的使用範圍

hash索引優點: 

hash 索引結構的特殊性,其檢索效率非常高,索引的檢索可以一次定位,不像b-tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的io訪問,所以 hash 索引的查詢效率要遠高於 b-tree 索引。 

hash索引缺點: 那麼不精確查詢呢,也很明顯,因為hash演算法是基於等值計算的,所以對於「like」等範圍查詢hash索引無效,不支援;

memory型別的儲存引擎主要用於哪些內容變化不頻繁的**表,或者作為統計操作的中間結果表,便於高效地對中間結果進行分析並得到最終的統計結果,對儲存引擎為memory的表進行更新操作要謹慎,因為資料並沒有實際寫入到磁碟中,所以一定要對下次重新啟動服務後如何獲得這些修改後的資料有所考慮。

(4)merge儲存引擎

mrg_mysiam:相當於儲存乙個mysiam集合,實際儲存在union表中

merge儲存引擎是一組myisam表的組合,這些myisam表必須結構完全相同,merge表本身並沒有資料,對merge型別的表可以進行查詢,更新,刪除操作,這些操作實際上是對內部的myisam表進行的。

Mysql資料庫儲存引擎

儲存引擎是什麼?mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。例如,如果你在研究大量的臨時資料,你也許需要使...

mysql資料庫儲存引擎

我們在 mysql儲存引擎有哪些 一節中介紹了 mysql 中幾種主要的儲存引擎以及它們的使用特性,本節將介紹如何根據不同的應用場景去選擇合適的儲存引擎。在使用 mysql 資料庫管理系統時,選擇乙個合適的儲存引擎是乙個非常複雜的問題。不同的儲存引擎都有各自的特性 優勢和使用的場合,正確的選擇儲存引...

MySQL資料庫儲存引擎

1 mysql中的資料用各種不同的技術儲存檔案中,每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並最終提供不同的功能和能力,這些不同的技術以及配套的功能在mysql中稱為儲存引擎 2 儲存引擎時mysql將資料儲存在檔案系統中的儲存方式或者儲存格式 3 mysql常用的儲存引擎 1 myisam...