Mysql之InnoDB存儲(chǔ)結(jié)構(gòu)

InnoDB存儲(chǔ)結(jié)構(gòu)

Innodb邏輯存儲(chǔ)單元為為表空間,段,區(qū),頁(yè)

InnoDB表空間

InnoDB存儲(chǔ)引擎表中所有數(shù)據(jù)都是存儲(chǔ)在表空間中的,表空間分為系統(tǒng)表空間,自定義表空間,系統(tǒng)表空間以ibdatal來(lái)命名,存儲(chǔ)所有數(shù)據(jù)信息和回滾段(undo)的信息(mysql 5.6之后可以設(shè)置undo存儲(chǔ)位置),初始化大小10MB,Innodb_data_file_path負(fù)責(zé)定義系統(tǒng)表空間的路徑,初始化大小,自動(dòng)擴(kuò)展策略,默認(rèn)的擴(kuò)展大小是64MB,建議將系統(tǒng)表空間大小調(diào)整為1G,因?yàn)樵谟龅礁卟l(fā)事務(wù)時(shí),數(shù)據(jù)信息/undo會(huì)比較大,會(huì)對(duì)性能有不小的影響

目前mysql中默認(rèn)使用的都是獨(dú)立的表空間,獨(dú)立表空間中存儲(chǔ)對(duì)應(yīng)表的B+樹(shù)數(shù)據(jù),索引數(shù)據(jù),插入緩存,其余信息都存儲(chǔ)在默認(rèn)表空間

獨(dú)立表空間每張表都有自己的表空間,表空間轉(zhuǎn)移、回收表空間比較方便,不過(guò)每個(gè)表空間都有.frm和.ibd文件兩個(gè)文件描述符,增長(zhǎng)過(guò)塊會(huì)有性能問(wèn)題

系統(tǒng)表空間也可以理解為共享表空間,共享表空間無(wú)法在線(xiàn)回收空間,需將全部Innodb表中數(shù)據(jù)備份,刪除原表,然后再把數(shù)據(jù)導(dǎo)回到與原表結(jié)構(gòu)一樣的新表

mysql5.7之后新增臨時(shí)表空間和通用表空間

臨時(shí)表空間就是將臨時(shí)表的戶(hù)數(shù)從系統(tǒng)表中抽離出來(lái),形成自己獨(dú)立表空間,參數(shù)inndodb_tmp_data_file_path,不過(guò)不能定義臨時(shí)表文件的存放路徑,文件名為ibtmpl,默認(rèn)大小12M

通用表空間就是多個(gè)表放在同一表空間中,按照活躍度來(lái)劃分表,存放在不同的磁盤(pán),目前生產(chǎn)中很少用

InnoDB段

表空間是由段組成的,通常有索引段,數(shù)據(jù)段,回滾段,每個(gè)段都是有N個(gè)區(qū)和32零散頁(yè)組成,段空間擴(kuò)展是以區(qū)為單位進(jìn)行擴(kuò)展,通常創(chuàng)建一個(gè)索引會(huì)創(chuàng)建2個(gè)段,分別為非葉子節(jié)點(diǎn)段,葉子結(jié)點(diǎn)段。一張表通常有4個(gè)段

InnoDB區(qū)

區(qū)是連續(xù)的頁(yè)組成,物理上連續(xù)分配的一段空間,大小固定是10M,一般一個(gè)區(qū)是由64頁(yè)組成

InnoDB頁(yè)

最小的物流存儲(chǔ)單位為頁(yè),默認(rèn)大小是16Kb,1個(gè)區(qū)大小16*64=1M,mysql5.6可以自定義page大小,從16kb調(diào)整為32kb,64kb.

InnoDB行

頁(yè)里面記錄行信息,InnoDB存儲(chǔ)引擎有兩種文件格式:Antelope和Barracuda,Antelope記錄格式有compact和redundant,Barracuda記錄格式有compressed和dynamic,mysql5.7默認(rèn)是dynamic記錄格式和barracuda文件格式

不同的記錄格式區(qū)別在于對(duì)于行溢出的不同處理方案(行溢出簡(jiǎn)單來(lái)說(shuō)數(shù)據(jù)在當(dāng)前存儲(chǔ)頁(yè)面外,拆分多個(gè)頁(yè)面進(jìn)行存儲(chǔ)),針對(duì)于大數(shù)據(jù)類(lèi)型text,dynamic將采用的數(shù)據(jù)存放在溢出的頁(yè)中,數(shù)據(jù)頁(yè)中只存儲(chǔ)前20個(gè)字節(jié)指針,在comapct模式下溢出的頁(yè)只能存放768個(gè)字節(jié)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容