您好,登錄后才能下訂單哦!
1、簡介
InnoDB中,實(shí)際上看不到系統(tǒng)表。有4個(gè)最基本的系統(tǒng)表來存儲(chǔ)表的元數(shù)據(jù):表、列、索引、索引列等信息。這4個(gè)表分別是SYS_TABLES、SYS_COLUMNS、SYS_INDEXES、SYS_FIELDS。下面分別介紹
2、SYS_TABLES
存儲(chǔ)所有以InnoDB為存儲(chǔ)引擎的表,每條記錄對應(yīng)一個(gè)表。該表的列分別是:
NAME:表名
ID:表的ID號(hào)
N_COLS:表的列數(shù)
TYPE:表的存儲(chǔ)類型,包括記錄的格式、壓縮等信息
MIX_ID、MIX_LEN、CLUSTER_NAME:暫時(shí)未用
SPACE:這個(gè)表所在的表空間ID。
這個(gè)表在NAME上有聚集索引,ID上有唯一二級(jí)索引。
3、SYS_COLUMNS
存儲(chǔ)列信息,每一列對應(yīng)一條記錄。表列:
TABLE_ID:該列所屬表的ID
POS:該列在表中第幾列
NAME:列名
MTYPE:列的主數(shù)據(jù)類型
PRTYPE:列的精確數(shù)據(jù)類型
LEN:列數(shù)據(jù)長度,不包括varchar類型,因?yàn)樵擃愋驮谟涗浝锩嬉呀?jīng)存儲(chǔ)了
PREC:列數(shù)據(jù)的精度。
該表的主鍵列是(TABLE_ID,POS)
4、SYS_INDEXES
存儲(chǔ)索引信息,每條記錄對應(yīng)一個(gè)索引。
TABLE_ID:該列所屬表的ID
ID:索引的索引號(hào)
NAME:索引名
N_FIELDS:索引包含的列數(shù)
TYPE:索引類型,包括聚集索引、唯一索引、DICT_UNIVERSAL、DICT_IBUF
SPACE:索引所在表的表空間ID
PAGE_NO:該索引對應(yīng)的B+樹的根頁面號(hào)。
該表主鍵(TABLE_ID,ID)
5、SYS_FIELDS
存儲(chǔ)定義的索引列,每條記錄對應(yīng)一個(gè)索引列:
INDEX_ID:該列所在的索引ID
POS:該列在索引中第幾列
COL_NAME:列名
該表主鍵是(INDEX_ID,POS)
6、數(shù)據(jù)字典表根頁面位置,在innodb中使用系統(tǒng)表空間0號(hào)文件的第7號(hào)頁面存儲(chǔ)。該頁面存儲(chǔ)了上面4個(gè)表的5個(gè)根頁號(hào),以及下一個(gè)表ID值、下一個(gè)索引ID值、下一個(gè)表空間ID值、rowid。第7號(hào)頁結(jié)構(gòu)如下所示:
dict0boot.h::
/* Dictionary header offsets */
#define DICT_HDR_ROW_ID 0 /* The latest assigned row id */
#define DICT_HDR_TABLE_ID 8 /* The latest assigned table id */
#define DICT_HDR_INDEX_ID 16 /* The latest assigned index id */
#define DICT_HDR_MAX_SPACE_ID 24 /* The latest assigned space id,or 0*/
#define DICT_HDR_MIX_ID_LOW 28 /* Obsolete,always DICT_HDR_FIRST_ID*/
#define DICT_HDR_TABLES 32 /* Root of SYS_TABLES clust index */
#define DICT_HDR_TABLE_IDS 36 /* Root of SYS_TABLE_IDS sec index */
#define DICT_HDR_COLUMNS 40 /* Root of SYS_COLUMNS clust index */
#define DICT_HDR_INDEXES 44 /* Root of SYS_INDEXES clust index */
#define DICT_HDR_FIELDS 48 /* Root of SYS_FIELDS clust index */
#define DICT_HDR_FSEG_HEADER 56 /* Segment header for the tablespace segment into which the dictionary header is created */
下一節(jié)講解系統(tǒng)表的加載及普通表數(shù)據(jù)字典的加載原理。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。