mysql引擎介紹

2021-08-27 04:06:44 字數 2120 閱讀 5934

myisam儲存引擎的表在資料庫中,每乙個表都被存放為三個以表名命名的物理檔案。首先肯定會有任何儲存引擎都不可缺少的存放表結構定義資訊的.frm檔案,另外還有.myd和.myi檔案,分別存放了表的資料(.myd)索引資料(.myi)。每個表都有且僅有這樣三個檔案做為myisam儲存型別的表的儲存,也就是說不管這個表有多少個索引,都是存放在同乙個.myi檔案中。

myisam支援以下三種型別的索引:

b-tree索引,顧名思義,就是所有的索引節點都按照balancetree的資料結構來儲存,所有的索引資料節點都在葉節點。

r-tree索引的儲存方式和b-tree索引有一些區別,主要設計用於為儲存空間和多維資料的字段做索引,所以目前的mysql版本來說,也僅支援geometry型別的字段作索引。

full-text索引就是我們長說的全文索引,他的儲存結構也是b-tree。主要是為了解決在我們需要用like查詢的低效問題。

myiasm是mysql預設的引擎,但是它沒有提供對資料庫事務的支援,也不支援行級鎖和外來鍵

當insert(插入)或update(更新)資料時即寫操作需要鎖定整個表,效率便會低一些

myiasm中儲存了表的行數,於是select count(*) from table時只需要直接讀取已經儲存好的值而不需要進行全表掃瞄

如果表的讀操作遠遠多於寫操作且不需要資料庫事務的支援,那麼myiasm也是很好的選擇

myiasm支援全文型別索引

1.支援事務安裝

2.資料多版本讀取

3.行級鎖、實現外來鍵約束

4.沒有儲存表的行數,當select count(*) from table時需要掃瞄全表

5.mysql執行時innodb會在記憶體中建立緩衝池,用於緩衝資料和索引

6.innodb不支援全文索引

ndb儲存引擎也叫ndbcluster儲存引擎,主要用於mysqlcluster分布式集群環境,cluster是mysql從5.0版本才開始提供的新功能。

merge儲存引擎,在mysql使用者手冊中也提到了,也被大家認識為mrg_myisam引擎。why?因為merge儲存引擎可以簡單的理解為其功能就是實現了對結構相同的myisam表,通過一些特殊的包裝對外提供乙個單一的訪問入口,以達到減小應用的複雜度的目的。要建立merge表,不僅僅基表的結構要完全一致,包括欄位的順序,基表的索引也必須完全一致。

memory儲存引擎,通過名字就很容易讓人知道,他是乙個將資料儲存在記憶體中的儲存引擎。memory儲存引擎不會將任何資料存放到磁碟上,僅僅存放了乙個表結構相關資訊的.frm檔案在磁碟上面。所以一旦mysqlcrash或者主機crash之後,memory的表就只剩下乙個結構了。memory表支援索引,並且同時支援hash和b-tree兩種格式的索引。由於是存放在記憶體中,所以memory都是按照定長的空間來儲存資料的,而且不支援blob和text型別的字段。memory儲存引擎實現頁級鎖定。

bdb儲存引擎全稱為berkeleydb儲存引擎,和innodb一樣,也不是mysql自己開發實現的乙個儲存引擎,而是由sleepycatsoftware所提供,當然,也是開源儲存引擎,同樣支援事務安全。

federated儲存引擎所實現的功能,和oracle的dblink基本相似,主要用來提供對遠端mysql伺服器上面的資料的訪問介面。如果我們使用原始碼編譯來安裝mysql,那麼必須手工指定啟用federated儲存引擎才行,因為mysql預設是不起用該儲存引擎的。

archive儲存引擎主要用於通過較小的儲存空間來存放過期的很少訪問的歷史資料。archive表不支援索引,通過乙個.frm的結構定義檔案,乙個.arz的資料壓縮檔案還有乙個.arm的meta資訊檔案。由於其所存放的資料的特殊性,archive表不支援刪除,修改操

作,僅支援插入和查詢操作。鎖定機制為行級鎖定。

blackhole儲存引擎是乙個非常有意思的儲存引擎,功能恰如其名,就是乙個「黑洞」。就像我們unix系統下面的「/dev/null」裝置一樣,不管我們寫入任何資訊,都是有去無回。

csv儲存引擎實際上操作的就是乙個標準的csv檔案,他不支援索引。起主要用途就是大家有些時候可能會需要通過資料庫中的資料匯出成乙份報表檔案,而csv檔案是很多軟體都支援的一種較為標準的格式,所以我們可以通過先在資料庫中建立一張cvs表,然後將生成的報表資訊插入到該錶,即可得到乙份csv報表檔案了。

mysql儲存引擎介紹 MySQL儲存引擎簡單介紹

mysql使用的是外掛程式式儲存引擎。主要包含儲存引擎有 myisam。innodb,ndb cluster,maria。falcon,memory,archive,merge。federated。當中最為廣泛的是myisam 和innodb兩種儲存引擎,所以接下來對它們做簡介。myisam 儲存引...

mysql儲存引擎介紹 MySQL儲存引擎介紹

toc innodb儲存引擎 其特點十行鎖設計 支援危機,並支援型別與oracle的非鎖定讀,即預設讀取操作不會產生鎖。innodb通過使用多版本併發控制 mvcc 來獲取高併發性,並且實現了sql標準的4種隔離,預設為repeatable級別。同時使用一種被稱為next keylocking的策略...

MySQL引擎各個引擎對比介紹

1.什麼是儲存引擎?模擬於,就是資料庫表裡的資料儲存在資料庫裡及磁碟上的系統格式特徵,不同的儲存引擎訪問,引擎功能,占用的空間大小,讀取效能等可能有區別.2.mysql的儲存引擎是mysql資料庫的重要組成部分,最常用的為myisam和innodb兩種,mysql的儲存引擎結構如圖所示 3.常用引擎...