MySQL数据文件的组织

MySQL数据文件的组织

1 字段的表示
Name Address Gender Birthday
Bob previlige M 19/06/1992
Mary malloand F 20/02/2003

每个字段均被SQL定义成具体的数据类型,表示成一定长度的字节序列。

字段名 类型 长度
Name Char(30) 30个字节
Address Varchar(256) 0到256个字节
Gender Char(1) 1个字节
Birthday date 3个字节
2 记录的表示

定长记录:它所包含的所有字段均为定长。
image
其中:字段前面保存的是记录的头信息。

注:由于数据需要经常移动到内存中进行处理,而内存的寻址方式是以4的倍数进行的,因此,定长记录中每个字段长度都需要被拓展成4的倍数。

变长记录:允许它包含变长字段有多种表示方法。
image

注:头信息中的指针指向每一个变长字段的存储地址

3 记录集合的存储结构
  • 物理邻接存储
  • 利用指针连接存储
4 数据文件的组织形式

应用不同而有多种组织形式:堆文件,顺序文件,散列文件,聚簇文件,按列存储。

组织形式 存储方式 优点 缺点
顺序文件 记录按某个搜索码的值的顺序进行存储 按搜索码进行检索,效率非常高 当频繁插入和删除元组时,文件的维护困难
散列文件 直接存取文件或哈希文件,利用哈希函数,将具有相同搜索码值的记录散列到外存(通常是磁盘上)的同地址范围中 记录随机存放,不需进行排序,所以插入、删除方便,存取速度快,不需要索引区,节省存储空间 支持按搜索码的随机查询;哈希函数的选择不是一件容易的事情,选择不当就会造成桶的偏斜
聚簇文件 每块可存贮多个有关联的关系 支持高效率的多表连接查询 降低单表查询的效率
按列存储 适应统计查询及OLAP应用的存储方式 减少无用数据的读入量;利用数据压缩减少访问被盘的次数。 -

按列存储用于数据仓库,记录数据仓库的数据,不再进行数据的增删改操作,而且基于数据仓库的数据分析基本上是基于维度的,因此将数据仓库中的大表拆分成若干个独立的小表,每个小表单独存储,这就意味着每个磁盘块只存储一列数据,这对于按维度进行数据检索非常有利。

猜你喜欢

转载自blog.csdn.net/olizxq/article/details/82291405
今日推荐