文件类型
一个数据库有三种类型的文件:
- Primary File:
.mdf
,master data file,记录了这个DB其它文件的指针,每个数据库都有 - Secondary File:默认情况下,数据存在主文件,如果决定对主文件进行扩展,可以创建二级文件,后缀名为
.ndf
- Transaction Log File:
.ldf
,每个DB都得有
Filegroups
- 便于对数据管理、分组
- 提高IO效率:将不同磁盘上的.ndf文件划分属于同一个文件组,每个磁盘有自己的磁盘控制器,查询将在不同磁盘展开,从而提高效率
Pages
数据存储的基本单元,8KB,96byte header,header中包括page number、page type、free space的大小等。其余部分存放数据项。
它能存储用户数据、索引等。
Extents
8个页是一个Extent,64KB。它是DBMS用于管理空间的单位。
Allocation Units
分配单元是针对页来讨论的,一个页的大小是8KB,但有的数据会超过8KB,那么单独的页就放不下一行数据。
-
IN_ROW_DATA:一行数据不会超过8KB,也就是一个页至少能放一行完整的数据
-
ROW_OVERFLOW_DATA:有变长数据,并且一个页放不下一行数据,会分配ROW_OVERFLOW_DATA类型的页并将超过8KB的数据放到新页,在原页中记录新页指针
-
LOB_DATA:LOB和OVERFLOW的区别在于,LOB在设计时就预期这列的内容会超过8KB,如varchar(max)和Image