MySQL MyISAM默認(rèn)存儲引擎實(shí)現(xiàn)原理
默認(rèn)MyISAM的表會在磁盤中產(chǎn)生3個文件:.frm(表結(jié)構(gòu)文件)、.MYD(數(shù)據(jù)文件)、.MYI(索引文件)
可以在創(chuàng)建的時候指定數(shù)據(jù)文件和索引文件的存儲位置,只有MyISAM表支持:
- DATA DIRECTORY [=] 數(shù)據(jù)保存的絕對路徑
- INDEX DIRECTORY [=] 索引文件的絕對路徑
MyISAM單表最大支持的數(shù)據(jù)量為2的64次方跳記錄
每個表最多可以建立64個索引
如果是復(fù)合索引,每個復(fù)合索引最多包含16個列,索引值最大長度是1000B
MyISAM引擎的存儲格式:
- 定長(FIXED 靜態(tài)) :是指字段不包含VARCHAR/TEXT/BLOB
- 動態(tài)(DYNAMIC) :只要字段中包含了VARCHAR/TEXT/BLOB
- 壓縮(COMPRESSED):muisampack創(chuàng)建
InnoDB存儲引擎:
設(shè)計遵循ACID模型,支持事務(wù),具有從服務(wù)崩潰中恢復(fù)的能力,能夠最大限度保護(hù)用戶的數(shù)據(jù)
支持行級鎖,可以提升多用戶并發(fā)時的讀寫性能
InnoDB擁有自己獨(dú)立的緩沖池,常用的數(shù)據(jù)和索引都在緩存中
對于INSERT、UPDATE、DELETE操作,InnoDB會使用一種change buffering的機(jī)制來自動優(yōu)化,還可以提供一致性的讀,并且還能夠緩存變更的數(shù)據(jù),減少磁盤I/O,提高性能
創(chuàng)建InnoDB表之后會產(chǎn)生兩個文件:
- .frm表結(jié)構(gòu)文件
- .ibd 數(shù)據(jù)和索引存儲表空間中
所有的表都需要創(chuàng)建主鍵,最好是配合上AUTO_INCREMENT,也可以放到經(jīng)常查詢的列作為主鍵
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Mysql中大小寫敏感問題導(dǎo)致的MySql Error 1146 Tabel doen’t exist錯誤
這篇文章主要介紹了Mysql中大小寫敏感問題導(dǎo)致的MySql Error 1146 Tabel doen’t exist錯誤,需要的朋友可以參考下2014-10-10SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)
這篇文章主要為大家介紹了SQL日期處理和視圖創(chuàng)建:常見數(shù)據(jù)類型、示例查詢和防范?SQL?注入方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Linux(Ubuntu)下mysql5.7.17安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Linux下mysql5.7.17安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01