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