首页 > 数据库 >SQL Server数据结构

SQL Server数据结构

时间:2023-10-26 15:45:04浏览次数:36  
标签:文件 8KB DATA Server SQL OVERFLOW 数据结构 数据 ROW

文件类型

一个数据库有三种类型的文件:

  • Primary File:.mdf,master data file,记录了这个DB其它文件的指针,每个数据库都有
  • Secondary File:默认情况下,数据存在主文件,如果决定对主文件进行扩展,可以创建二级文件,后缀名为.ndf
  • Transaction Log File:.ldf,每个DB都得有

image

Filegroups

  1. 便于对数据管理、分组
  2. 提高IO效率:将不同磁盘上的.ndf文件划分属于同一个文件组,每个磁盘有自己的磁盘控制器,查询将在不同磁盘展开,从而提高效率

Pages

数据存储的基本单元,8KB,96byte header,header中包括page number、page type、free space的大小等。其余部分存放数据项。
它能存储用户数据、索引等。

Extents

8个页是一个Extent,64KB。它是DBMS用于管理空间的单位。

image

Allocation Units

分配单元是针对页来讨论的,一个页的大小是8KB,但有的数据会超过8KB,那么单独的页就放不下一行数据。

  • IN_ROW_DATA:一行数据不会超过8KB,也就是一个页至少能放一行完整的数据

  • ROW_OVERFLOW_DATA:有变长数据,并且一个页放不下一行数据,会分配ROW_OVERFLOW_DATA类型的页并将超过8KB的数据放到新页,在原页中记录新页指针

  • LOB_DATA:LOB和OVERFLOW的区别在于,LOB在设计时就预期这列的内容会超过8KB,如varchar(max)和Image

image

引用

  1. https://medium.com/@idanmashi/sql-server-part-1-5811daebdeba

标签:文件,8KB,DATA,Server,SQL,OVERFLOW,数据结构,数据,ROW
From: https://www.cnblogs.com/bblitz/p/17789559.html

相关文章

  • sql 查找是否存在的记录
    场景:根据条件从数据库表中查询『有』与『没有』,只有两种状态方法1:SELECTcount(*)FROMtableWHEREa=1方法2:SELECT1FROMtableWHEREa=1LIMIT1 SQL不再使用count,而是改用LIMIT1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了,业务代码中直接判断......
  • MySQL建数据库排序规则选择
    MySQL建数据库排序规则选择引言在MySQL数据库中,选择适合的排序规则对于数据的存储和检索非常重要。排序规则决定了字符比较的方式,影响数据库的数据排序和查询结果。本文将介绍MySQL中常见的排序规则,并提供相应的代码示例来帮助读者理解和选择适合自己需求的排序规则。排序规则......
  • MySQL连接字符串的实际操作步骤汇总
    MySQL连接字符串的实际操作步骤汇总MySQL字符串主要向大家描述的是MySQL连接字符串的实际操作步骤汇总,其中包括MySqlConnector/ODBC2.50(MyODBC2.50)连接方式,MySQLConnector/ODBC3.51(MyODBC3.51)连接方式等相关内容的具体描述。一、MySQLConnector/ODBC2.50(MyODB......
  • mysql表关联查询-索引失效问题
    问题:两张关联表索引字段的字符集不一致导致索引失效。解决方案:先用EXPLAIN检查关联字段是否使用了索引,查看两张表的字段不一致导致将两张表索引字段的字符集发现字符集不一致,重新将字符集统一为utf8mb4。 ......
  • mysql密码忘记解决方案
    mysql版本5.7,windows系统今天用navicat连接一个很久没用的mysql地址突然忘记密码了,下面是我的解决方案在windows的操作步骤如下:1、现在服务中关闭mysql 2、找到mysql的my.ini文件,在mysqld关键字下面添加skip-grant-tables,如下图 文件在mysql安装目录data下.2、重启My......
  • MySQL 查询优化
     我们在写一些mysql语句时。可能会写一些耗费性能的语句。这时候我们可以利用查询重写将糟糕的语句转化成某种可以高效执行的形式。 条件化简将我们写的复杂表达式进行简化。 1.移除不必要的括号举例:可将SELECT*FROM(t1,(t2,t3))WHERE...化简为SELECT*......
  • MySQL学习(9)统计数据
    存储方式MySQL提供了两种存储统计数据的方式,分别是永久性地存储统计数据和非永久性地存储统计数据,分别存储在磁盘和内存中。系统变量innodb_stats_persistent用来控制统计数据存储在哪里。值为OFF表示存储在内存,值为ON表示存储在磁盘。SHOWVARIABLESLIKE'innodb_stats_persi......
  • Mysql基础语法理论大全
    ------------------------------------------------------------------------------------------------第一章:SQL语言基础(SQL结构化查询语句)--------------------------------------------------------------------------------------------------按照SQL92、99标准分为4大类......
  • 只此一篇,让你掌握Mysql所有语法及用法
    一、Mysql总结思维导图:二、SELECT(一)基础语法1.查询所有的列*SELECT*FROM表名;SELECT*FROMemp;SELECT*FROMdept;SELECT*FROMsalgrade;2.查询指定的列SELECT列名1,列名2...列名NFROM表名;SELECTename,job,salFROMemp;SELECTdeptno,dnameFROMdept;3.使用算......
  • Mysql函数大全
    前言MySQL提供了众多功能强大、方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求。本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时查看。数学函数(1)ABS(x)返回x的绝对值(2)PI()返回圆周率π,默认显示6位小数(3)SQRT(x)返回非......