1.索引组织表(
IOT
)
以主键顺序存储的表为IOT,每张表都会有主键,如果没有显示自定义主键,则按如下顺序创建主键:
a.首先判断是否有非空的唯一索引,如果有,则该列即为主键
b.如果不符合上术条件,InnoDB存储引擎自动创建一个6个字节大小的指针
2.InnoDB逻辑存储结构
存储结构组成部分:
1.表空间
启用了innodb_file_per_table参数,每张表的表空间只存放数据、索引和插入缓冲bitmap页,其它类型的数据还是存放在共享表空间中
2.段
表空间是由各个段组成的,常见的段有数据段、索引段、回滚段等
3.区
由连续的页组成,任何情况下每个区的大小都为1M。
4.页(块)
InnoDB磁盘管一时的最小单位。默认每个页的大小为16K。
5.行
每个页存放的行记录是硬性定义的,最多允许存放16KB/2-200行的记录,即7992行。
3.InnoDB行记录格式
使用show tables status like 'table_name'查看当前使用行格式
1.compact行记录格式
2. redundant 行记录格式
3.行溢出数据
InnoDB存储引擎可以将一条记录中的某些数据存储在真正的数据页面之外。varchar类型,最高指定为8098
4.
InnoDB
数据页结构
组成部分:
1.
File Header
(文件头)(
38
字节)
2.
Page Header
(页头)(
56
字节)
3.
Infimun
和
Supremum Records
4.
User Records
(用户记录,即行记录)
5.
Free Space
(空闲空间)
6.
Page Dirctory
(页目录)
7.
File Trailer
(文件结尾信息)(
8
字节)
5.Named File Formats 机制
6.约束
7.视图
8.分区表
MYSQL数据库的分区是局部分区索引,一个分区中既存了数据又存放了索引。
分区类型:
1.
RANGE
分区
NULL
值会放在最左边分区
2.LIST
NULL
需要显示指出放在哪个分区,否则会报错
3.HASH
NULL
值的记录返回为
0
4.KEY
NULL值的记录返回为0