MySQL MyISAM預設儲存引擎實現原理
阿新 • • 發佈:2020-04-10
預設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,也可以放到經常查詢的列作為主鍵
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。