MySQL基礎之儲存引擎

2021-08-19 04:47:49 字數 1572 閱讀 1483

儲存引擎就是如何儲存資料,如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方式。儲存引擎又稱為表型別(即儲存和操作表的型別),因為在關係型資料庫中資料的儲存是以表的形式儲存的。

支援插入式儲存引擎(即支援多種儲存引擎),這是mysql資料庫區別於其他資料庫的乙個重要特點。oracle和sql server等資料庫都只有一種儲存引擎,所有資料的儲存管理機制都是一樣的。就這一點來說,mysql提供了多種資料的儲存管理機制,更加靈活,使用者可以根據不同的需求為資料表選擇不同的儲存引擎,也可以根據自己的需求編寫屬於自己的儲存引擎。

1.儲存引擎myisam

1)基於isam儲存引擎,提供高速儲存和檢索,以及全文搜尋能力;(isam:索引順序訪問方法(isam, indexed sequential access method)最初是

ibm公司發展起來的乙個

檔案系統

2)不支援事務處理;

3)將表儲存為3個檔案:檔名於表名相同。

①檔名.myd:儲存資料(d-data 資料);

②檔名.myi:儲存索引(i-index 索引);

③檔名.frm:儲存表的結構(frm-frame 結構)。

4)支援三種不同的儲存格式:靜態型、動態型、壓縮型。

②動態可變長度:欄位是可變長的。優點:占用空間較少;缺點:頻繁的刪除記錄會產生碎片,需要定期改善效能,出現故障時也相對的難恢復;

③壓縮表:壓縮表占用磁碟空間小,每個記錄被單獨壓縮,訪問開支也非常小。

2.儲存引擎memory

1)表的資料儲存在記憶體中,如果資料庫重啟或者崩潰,表中的資料將全部消失;

2)不支援事務處理;

3)適合於儲存臨時資料;

4)儲存速度非常快;

5)只支援表鎖,併發性較差,且不支援text和blob列型別;

6)儲存變長字段(varchar)時會按照定常字段處理(char),會造成記憶體的浪費;

7)當作為臨時表來存放查詢的中間結果集時,如果中間結果集大於memory儲存引擎的容量設定,或中間結果包列型別字段,mysql資料庫會把該臨時表轉換到mysiam儲存引擎表而存放在磁碟上。

3.儲存引擎innodb

1)mysql預設儲存引擎;

2)支援acid(

原子性(atomicity)、一致性(consistency)、隔離性(isolation)、永續性(durability))相容的事務功能(獨有);

3)支援回滾(

4)提供行級鎖和不加鎖讀取;

5)讀取效率稍低,占用的資料空間相對較大;

6)提供外來鍵約束(獨有);

7)支援自動增長列auto_increment

2.memory:提供記憶體表,資料處理速度快,但安全性不高,重啟或者發生崩潰,資料將全部丟失。當對讀寫速度要求高,安全性要求低時推薦使用memory。另外:表不能太大,否則超過設定值,會轉換為myisam儲存在磁碟中。

3.innodb:主要用於事務處理應用程式,支援外來鍵,同時支援崩潰修復能力和併發控制能力。如果對事務的完整性要求較高(如轉賬的操作),要求實現併發通知,推薦使用innodb;如果需要頻繁的進行更新和刪除操作,也可以選擇,因為該引擎實現事務的提交和回滾。

MySQL基礎之 儲存引擎

myisam儲存引擎 缺點 不支援事務,不支援外來鍵。只支援表級鎖。優點 訪問速度快,多用於select insert語句的高負載操作。僅僅支援全文索引。myisam快取在記憶體的是索引,不是資料。而innodb快取在記憶體的是資料,相對來說,伺服器記憶體越大,innodb發揮的優勢越大 myisa...

mysql基礎之儲存引擎

mysql 可以將資料以不同的技術儲存在檔案 記憶體 中,這種技術就稱為儲存引擎。每一種儲存引擎使用不同的儲存機制 索引技巧 鎖定水平,提供最廣泛且不同的功能。mysql 支援的儲存引擎 myisam inodb memory csv archive 相關知識之併發處理 併發控制 當多個連線對記錄進...

MySQL基礎九之儲存引擎

1.概念 1.1.mysql用不同的技術將資料儲存在檔案當中,這種技術稱之為儲存引擎。2.併發控制 2.1.當多個連線對記錄進行修改時候為了保持資料的一致性和完整性。1.1種類 1.2.設定儲存引擎 1 通過配置檔案 default storage engine engine name 2 建立資料...