1. 程式人生 > 資料庫 >MySQL MyISAM預設儲存引擎實現原理

MySQL MyISAM預設儲存引擎實現原理

預設MyISAM的表會在磁碟中產生3個檔案:.frm(表結構檔案)、.MYD(資料檔案)、.MYI(索引檔案)

  可以在建立的時候指定資料檔案和索引檔案的儲存位置,只有MyISAM表支援:

  •     DATA DIRECTORY [=] 資料儲存的絕對路徑
  •     INDEX DIRECTORY [=] 索引檔案的絕對路徑

  MyISAM單表最大支援的資料量為2的64次方跳記錄  

  每個表最多可以建立64個索引

  如果是複合索引,每個複合索引最多包含16個列,索引值最大長度是1000B

  MyISAM引擎的儲存格式:

  •     定長(FIXED 靜態) :是指欄位不包含VARCHAR/TEXT/BLOB
  •     動態(DYNAMIC) :只要欄位中包含了VARCHAR/TEXT/BLOB
  •     壓縮(COMPRESSED):muisampack建立

InnoDB儲存引擎:

  設計遵循ACID模型,支援事務,具有從服務崩潰中恢復的能力,能夠最大限度保護使用者的資料

  支援行級鎖,可以提升多使用者併發時的讀寫效能

  InnoDB擁有自己獨立的緩衝池,常用的資料和索引都在快取中

  對於INSERT、UPDATE、DELETE操作,InnoDB會使用一種change buffering的機制來自動優化,還可以提供一致性的讀,並且還能夠快取變更的資料,減少磁碟I/O,提高效能

  建立InnoDB表之後會產生兩個檔案:

  •     .frm表結構檔案
  •     .ibd 資料和索引儲存表空間中

  所有的表都需要建立主鍵,最好是配合上AUTO_INCREMENT,也可以放到經常查詢的列作為主鍵

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。