读书笔记–InnoDB数据字典

在InnoDB中,体系表究竟是不可见的。,与Oracle有区别的,它可以经过查询陈述照亮取得。。因mysql是单独可插件数据库应付体系。。它的构造分为两层。,检修层和内存引擎层零件。最早的内存引擎是MyISAM,它是无数据字典的,在表构造,它正是FRM档案。,因而这通向了InnoDB也霉臭责任为了档案才使得Server层认同并应付它。在附近检修层,表是多少的内存引擎?,这是表的属性。。深刻到每单独内存引擎,数据字典就不被Server层来应付了,这就通向数据字典不克不及被用户认识了。

体系表构造

InnoDB有四价元素最根本的体系表,用于内存用户明确的表,列,介绍人和介绍人列和另一个知识,这些表是sys_tables,零件,SYS_COLUMNS,SYS_INDEXES,SYS_FIELDS。

SYS_TABLES

该表用于内存所某个InnoDB的内存引擎

NAME:表现表的表名。

ID:表现表的ID号。

N_COLS:表现表的列数。,表指出的列数。。

TYPE:表现表的内存典型。,包罗记载的体式,紧缩等知识。

SPACE:表空隙ID在表中表现。。与此表对立应的大调列是规定。,并且ID上剧照超绝的介绍人。。

SYS_COLUMNS

用于内存在i中明确的一切表打中一切列的知识。,对应于表的每个列的记载。。

TABLE_ID:表现该列属于该表的ID号。

POS:训示此列是表打中第一列。。

NAME:表现列的规定。

M型:表现此列的首要数据典型。。

PRTYPE:此列的若干正规的数据典型表现,这是单独结成值。,包罗空标识,作记号数的作记号,可能的选择它是二元系字母串的作记号更表现列是

LEN:训示列数据的精确。,眼前还无用过。。

SYS_INDEXES

在InnoDB内存一切表的介绍人知识,每个记载对应单独介绍人。

TABLE_ID:表现介绍人的表的ID号。。

ID:表现介绍人的介绍人号id。

NAME:表现介绍人的介绍人规定。

N_FIELDS:表现此介绍人中容纳的列数。。

TYPE:表现此介绍人的典型。,包罗聚类介绍人,超绝介绍人,等

SPACE:表现介绍人数据的表空隙ID号。

PAGE_NO:表现介绍人的B 树根页。

SYS_FIEDS

用于内存介绍人中明确的一切介绍人的介绍人列。,每个记载对应单独介绍人。列。

INDEX_ID:列介绍人

POS:此列是介绍人中介绍人列的编号。

COL_NAME:介绍人列的列名。

字典表使担负

当我们的开端,是否是单独新的数据库,您需求设定初值库。,介绍人需求到达单独字典应付的B 树知识。。因在InnoDB的体系表的构造,号码等都是钉牢的。,因而你只需求到达单独内存B 树这些表时设定初值。同时,这些B 树的根页是内存在单独钉牢,无必要将这些表完全地的知识内存在。在附近B树,找到它的根翻书页,您可以搜索它的数据。。

在附近数据字典表根翻书页外景的内存方法,InnoDB用了单独特意的翻书页(0号表空隙0号档案的7号翻书页)来应付数据字典知识。此页用于内存4个体系表的5美元钞票根页编号(WI)。。

家庭用户表的使担负进行,当用户拜访表时,体系率先从表情人B查找表共享情人,是否你找到它,直系的从现实表情人运用单独释放包围化的表情人,是否无干的包围化情人,您需求重行翻开(包围化为了表),当包围化表,您需求为这张表找到字典知识。,包罗表完全地,列知识和介绍人知识等。,最大限度知识是从共享情人取得的。。是否无共享情人,共享情人需求从体系表中建筑物。。

Rowid应付

在InnoDB中,在用户表打中记载,未必有单独ROWID列,rowid正是当表无明确大调,正是散布。数据的应付和分派,它过错单独正是单独ID空隙的表。,它是球面的的。,将ID号与表共享。

数据散布不直系的修正翻书页,它将被写信反映一次,由于值是256的时代。。因而是否拔出200次,这些值还没有写信反映。,这是体系重行启动。,身份证号码不克不及重复运用吗?,因当数据库启动时,调动单独职务来给予帮助每一职责。,这是使最后的的rowid值256加256,无能力的有成绩的。。

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注