InnoDB存储引擎表的逻辑存储结构
1.索引组织表:
innodb1.2.x版本号開始新增參数innodb_page_size能够将默认页的大小设置为4k、8k,可是页中的数据库不是压缩。
当中包括一个问题就是用户启用了innodb_file_per_table參数后。创建的表默认大小是96kb,可是区中是64个连续的页,创建的表的大小应该至少是1MB才对,由于在每一个段開始时。先用32个页大小的碎片页来存放数据,使用完之后才申请64个连续页,为了节省磁盘容量的开销。
页(page): 页是innodb磁盘管理的最小单位。默认每一个页的大小为16KB。常见的页有:数据页、undo页、系统页、事务数据页、插入缓冲位图页等。
行:每一个页存放的行记录最多同意存放16kb/2-200行记录,
innodb存储引擎中的记录是以行的形式存储的。这意味着页中保存着一行行的数据,在innodb1.0.x之前,提供了compact和redundant两种格式存放行记录数据,
3.1. compact行记录格式:
mysql5.0以后引入,为了高效的存储数据,一个页中存放的行数据越多,性能越高,其存储方式为:
首部是一个非NULL变长字段长度列表,长度最大不超过2字节,第二部分是null标志位。指示该行数据是否含有null值,有就用1表示,记录头信息固定占用5字节(40位),最后就是实际存储每列的数据。特别注意,null不占用该部分不论什么空间,除了占用null标志位。还有就是每行数据除了用户自己定义的以外,还包括隐藏列。事务id列和回滚指针列。各自是6字节和7字节的大小 ,假设没有主见。每行还会添加一个6字节的rowid列。
首部是一个字段长度偏移列表,也是依照列的顺序逆序放置的,第二部分记录头信息占用6字节,最后就是实际存储的每列的数据。
tree的意义,变成链表了),因此假设一个页仅仅能存放一条记录,那么innodb存储引擎会自己主动将行数据存放在溢出页中。
新的行记录格式对于存放在BLOB中的数据採用了全然的行溢出方式,在数据页中仅仅存放20字节的指针,实际的数据都存放在off page中(不同于compact和redundant格式会存放768个前缀字节),
由下面7个部分组成:
space是链表数组结构,在一条记录被删除后。该空间就会被增加到空暇链表中
InnoDB存储引擎表的逻辑存储结构的更多相关文章
- InnoDB的表类型,逻辑存储结构,物理存储结构
表类型 对比Oracle支持的各种表类型,InnoDB存储引擎表更像是Oracle中的索引组织表(index organized table).在InnoDB存储引擎表中,每张表都有个主键,如果在创建 ...
- InnoDB存储引擎表的主键
在InnoDB存储引擎中,表是按照主键顺序组织存放的.在InnoDB存储引擎表中,每张表都有主键(primary key),如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下方式选择或创 ...
- mysql数据库 myisam数据存储引擎 表由于索引和数据导致的表损坏 的修复 和检查
一.mysqlcheck 进行表的检查和修复 1.检查mysqlisam存储引擎表的状态 #mysqlcheck -uuser -ppassword database table -c #检查单 ...
- {MySQL存储引擎介绍}一 存储引擎解释 二 MySQL存储引擎分类 三 不同存储引擎的使用
MySQL存储引擎介绍 MySQL之存储引擎 本节目录 一 存储引擎解释 二 MySQL存储引擎分类 三 不同存储引擎的使用 一 存储引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是 ...
- INNODB存储引擎表空间
这片文章主要是对innodb表空间的一些说明: innodb中表空间可以分为以下几种: 系统表空间 独立表空间 undo表空间 临时表空间(temporary tablespace) 通用表空间(ge ...
- MySQL的nnodb引擎表数据分区存储
Symlinks are fully supported only for MyISAM tables. 对应Innodb引擎数据文件放到其他目录 mysql> SHOW VARIABLES L ...
- InnoDB存储引擎介绍-(5) Innodb逻辑存储结构
如果创建表时没有显示的定义主键,mysql会按如下方式创建主键: 首先判断表中是否有非空的唯一索引,如果有,则该列为主键. 如果不符合上述条件,存储引擎会自动创建一个6字节大小的指针. 当表中有多个非 ...
- InnoDB 逻辑存储结构
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/80 如果创建表时没有显示的定义主键,mysql会按如下方式创建主 ...
- MYSQL Innodb逻辑存储结构
转载于网络 这几天在读<MySQL技术内幕 InnoDB存储引擎>,对 Innodb逻辑存储结构有了些了解,顺便也记录一下: 从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放 ...
随机推荐
- GO -- 一个经验
加锁要在有用的的上下文再加锁, 不要加的范围多了, 否则被锁住.
- mysql中函数greatest 与MAX区别
greatest (a,b,c,d,d)max(a) 这样就能看明白了,greatest 求的是某几列的最大值,横向求最大(一行记录)max(a) 一看就明白了,是给纵向求最大(多行记录).
- qsort(),sort()排序函数
一.qsort()函数 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp ...
- c#抓去网页
c#利用WebClient和WebRequest获取网页源代码的比较 2011-11-28 10:26:42 我来说两句 收藏 我要投稿 C#中一般是可以利用WebClient类和WebReq ...
- poj 1035 Spell checker ( 字符串处理 )
Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16675 Accepted: 6087 De ...
- Install Python+Django+Nginx+UWSGI
一.软件环境: CentOS6.6_64bit 需要用到的软件: [root@django tools]# ll 总用量 33336 -rw-r--r-- 1 root root 7497785 3月 ...
- 小议使用“完整”的CSS的缺点
1.浏览器支持的不一致性 浏览器的漏洞或缺乏支持的CSS功能,导致不同的浏览器显示出不同的CSS版面编排.例如在微软Internet Explorer6.0的旧版本 ,执行了许多自己的CSS2.0属性 ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- angularjs中的ng-src和ng-href
ng-src和ng-href等同于html中的src和href,只是ng是在dom加载完毕之后才能够发挥作用,如果在src或href中绑定变量,如果ng没有加载完,会导致链接地址出错,如果用对应的ng ...
- ASP.NET Core Kestrel 随机404错误
一.Bug 出现 最近遇到一个很诡异的bug,Visual Studio 2017调试ASP.NET Core 2.2 Web程序的时候,随机性的出现404错误.如下图 事实上这个css文件是存在的, ...