MySQL技术内幕Charpter4表

一、逻辑存储结构

逻辑上所有数据都被存在表空间内,默认存放在共享表空间中,启用innodb_file_per_table则每张表单独一个表空间

1.表空间

单独表空间中只存放数据,索引,插入缓冲Bitmap,其他数据还是在共享表空间

2.segment

innodb中数据即索引,索引即数据,数据段即B+树叶节点,索引树即非叶节点

3.extent

区由连续页组成,默认1M,64个页

每个段开始时先用32个碎片页存放数据,使用完后才是64个连续页的申请

4.页

innodb最小磁盘管理单位

5.行

 

二、行记录格式

innodb提供compact和redundant方式记录行数据,后者为了兼容之前的版本而保留

页内部是通过一种链表结构串联各行记录,一行最多支撑1023个列

varchar列长度总和大为65535

B+树索引并不能找到一条记录,只能找到该记录的页,数据库把页载人内存,通过page directory进行二叉查找

 

三、约束

关系型数据库通过约束机制来确保数据的完整性,主要包括:实体完整性(只有一个主键)、域完整性(每列满足特定条件)、参照完整性(确保两张表之间关系)

MySQL向NOT NULL的字段插入一个NULL值,会将其更改为0再插入,通过strict_trans_tables对输入值的合法性进行约束

不支持check约束,可通过ENUM与SET解决部分

通过触发器,用户可以实现MySQL数据库不支持的一些特性,如check、物化视图、高级复制、审计等

 

四、分区表

从逻辑上只有一个表或索引,但在物理上表或索引可能有多个物理分区组成,MySQL分区是局部分区索引,分区中既存放数据,也存放索引。

分区类型包括:range、list、hash、columns(可为非整型)、key(MySQL提供函数)

range与list下再进行hash或key的子分区

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值