MySQL笔记-InnoDB物理及逻辑存储结构
首先是InnoDB的物理結構
它是B+樹,這里有一點要注意的,數(shù)據(jù)=索引;
葉子結點存放數(shù)據(jù)、主鍵、事務ID、回滾指針的。
二級索引最終都會指向主鍵索引。
?
在InnoDB引擎中,創(chuàng)建表沒有主鍵,InnoDB會把not null中unique作為主鍵,若這樣的列也沒有,那么InnoDB會生成6個字節(jié)的不可見的rowid。
在InnoDB中如果是獨立表空間,創(chuàng)建一個表會生成2個文件,一個是.frm文件,一個是.ibd文件。
使用
show variables liks '%per_table%'進行查看:
如果為ON就是獨立的,因為獨立的話管理起來方便。
如創(chuàng)建一個表
create database IT1995Test; use IT1995Test; create table student(id int, name varchar(50));在data/數(shù)據(jù)庫/下面會有frm和ibd這個文件。
這里通過
show variables liks '%datadir%'這條命令可以查看,數(shù)據(jù)庫存儲位置
從中可以知道他存儲在/data/mysql/目錄下,剛剛創(chuàng)建了個表現(xiàn)在來看看
從中可以看到IT1995Test文件夾。進入即可:
從中可以看到創(chuàng)建了student.frm與student.ibd
?
下面是如何查看表空間
select * from information_schema.INNODB_SYS_TABLES;可以看到表空間,ID,spaceID。
數(shù)據(jù)如下:
下面來分析下這個圖:
這里段和表是一致的,段是物理上的,表是邏輯上的。段采用InnoDB引擎進行管理。一個段下有多個區(qū)組成;
區(qū)是分配空間的最小單位。標準是1M,Page如果是16K大小為標準,一個區(qū)是64個連續(xù)的Page組成。
Page是最小的IO單位。標準為16K
?
?
總結
以上是生活随笔為你收集整理的MySQL笔记-InnoDB物理及逻辑存储结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android逆向笔记-破解某APP签名
- 下一篇: SQL笔记-检索出ID为Int或Long