1、定长记录
在定长记录里,每个字段都有固定的长度,而且字段数也是固定的。这种记录的字段能够连续存储,因此在给定记录地址的情况下,借助系统目录里有关字段的长度信息就能计算出某个特殊字段的地址。
2、变长记录
对于变长记录来说,一种可能的记录组织方式就是像定长记录一样连续地存放字段,字段之间通过分割符隔开。这种组织方式需要扫描记录才能定位需要访问的字段。
另一种方法是在变长记录开始处预留一些空间作为存放一个整数偏移量数组的空间,数组中的第1个整数表示记录的第1个字段的起始地址,当然这个地址是相对于记录的起始地址的。另外在数组中也存储记录尾部的偏移量,这个偏移量用来识别最后一个字段的结束位置。
1、 SQL Server定长记录的存储
当往表中插入一个记录数据时,例如:
表在系统表里的内容就会发生变化:
这说明在插入了一记录数据之后,SQL Server就为表分配了一个数据页。表只包含四个定长字段,sysindexes表中minlen字段的值表示记录的最小长度,该长度恰好是表中表示字段长度的的数字之和再加上4个字节。其中额外的4个字节是用于记录字段数目的两个字节和表示字段中的字节数。
解析:
第一个字节是状态位A,它的值是0x10,表示只有位4是1,其他位都是0,因此该记录没有变长字段(如果位5为1说明存在变长字段)。
2-3字节:1800,说明在16+8=24个字节位置存储的总字段数,即所含字段总数存储在24字节。
4-23字节:存储内容的ASC码形式。
24-25字节:0400,转换为0004,说明有4个字段(4个消息块)
26-27字节:04,表示NULL位图,转换为二进制即为0000 0010,表示第二个字段(从1开始数)插入值为NULL。
2、 SQL Server变长记录的存储
当往Variable表中插入一个记录数据时,例如:
Variable表在系统表里的内容就会发生变化:
以上就是本篇文章【大型数据库——表的存储原理】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/2720.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多