InnoDB資料字典詳解-系統表
1、簡介
InnoDB中,實際上看不到系統表。有4個最基本的系統表來儲存表的後設資料:表、列、索引、索引列等資訊。這4個表分別是SYS_TABLES、SYS_COLUMNS、SYS_INDEXES、SYS_FIELDS。下面分別介紹
2、SYS_TABLES
儲存所有以InnoDB為儲存引擎的表,每條記錄對應一個表。該表的列分別是:
NAME:表名
ID:表的ID號
N_COLS:表的列數
TYPE:表的儲存型別,包括記錄的格式、壓縮等資訊
MIX_ID、MIX_LEN、CLUSTER_NAME:暫時未用
SPACE:這個表所在的表空間ID。
這個表在NAME上有聚集索引,ID上有唯一二級索引。
3、SYS_COLUMNS
儲存列資訊,每一列對應一條記錄。表列:
TABLE_ID:該列所屬表的ID
POS:該列在表中第幾列
NAME:列名
MTYPE:列的主資料型別
PRTYPE:列的精確資料型別
LEN:列資料長度,不包括varchar型別,因為該型別在記錄裡面已經儲存了
PREC:列資料的精度。
該表的主鍵列是(TABLE_ID,POS)
4、SYS_INDEXES
儲存索引資訊,每條記錄對應一個索引。
TABLE_ID:該列所屬表的ID
ID:索引的索引號
NAME:索引名
N_FIELDS:索引包含的列數
TYPE:索引型別,包括聚集索引、唯一索引、DICT_UNIVERSAL、DICT_IBUF
SPACE:索引所在表的表空間ID
PAGE_NO:該索引對應的B+樹的根頁面號。
該表主鍵(TABLE_ID,ID)
5、SYS_FIELDS
儲存定義的索引列,每條記錄對應一個索引列:
INDEX_ID:該列所在的索引ID
POS:該列在索引中第幾列
COL_NAME:列名
該表主鍵是(INDEX_ID,POS)
6、資料字典表根頁面位置,在innodb中使用系統表空間0號檔案的第7號頁面儲存。該頁面儲存了上面4個表的5個根頁號,以及下一個表ID值、下一個索引ID值、下一個表空間ID值、rowid。第7號頁結構如下所示:
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 */
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2152628/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- InnoDB資料字典--字典表載入
- 系統表和資料字典檢視
- InnoDB 層系統字典表 | 全方位認識 information_schemaORM
- MySQL InnoDB系統表空間資料檔案配置MySql
- 資料字典和固定表統計資訊更新
- Oracle常用資料字典表Oracle
- mysql儲存引擎InnoDB詳解,從底層看清InnoDB資料結構MySql儲存引擎資料結構
- 詳細瞭解INNODB_TRX、INNODB_LOCKs、INNODB_LOCK_waits、PROCESSLIST表AI
- ORACLE_系統字典常用表整理Oracle
- 系統許可權相關資料字典
- InnoDB 索引詳解索引
- MySQL 增加InnoDB系統表空間大小MySql
- 瞭解Oracle資料字典Oracle
- Redis資料結構詳解(2)-redis中的字典dictRedis資料結構
- 表空間的資料字典管理
- oracle資料字典表與檢視Oracle
- MySQL 8.0 20個 InnoDB 及資料字典相關的新特性MySql
- 詳解Ceph系統資料是如何佈局的?
- MySQL InnoDB資料庫如何保證事務特性示例詳解MySql資料庫
- python使用dbm持久字典(python微型資料庫)詳解Python資料庫
- 深入瞭解Oracle資料字典Oracle
- MySQL InnoDB表--BTree基本資料結構MySql資料結構
- 【資料庫】解決Mysql資料庫提示innodb表不存在的問題!資料庫MySql
- Oracle 資料庫字典 檢視 基表Oracle資料庫
- 優化mysql資料字典表查詢優化MySql
- 類似資料字典的幾個表
- MySQL 減少InnoDB系統表空間的大小MySql
- 關於InnoDB表資料和索引資料的儲存索引
- 詳解 Oracle 分散式系統資料複製技術Oracle分散式
- show engine innodb status 詳解
- 批量修改Mysql資料庫表Innodb為MyISANMySql資料庫
- 深入瞭解Oracle資料字典(zt)Oracle
- Oracle 資料字典和資料字典檢視Oracle
- 詳解ORACLE資料庫的分割槽表Oracle資料庫
- 資料字典
- Innodb 鎖子系統
- MySQL show engine innodb status 詳解MySql
- SHOW ENGINE INNODB STATUS資訊詳解