跳到主要内容
系统常识 SQL Server数据文件文件组

.ndf 数据文件是什么?什么时候分多文件

解释 .mdf 与 .ndf 文件格的区别、文件组的作用,以及大库何时该把数据文件拆到多个卷、拆几个的实用判断。

发布于 2026/11/11 所属频道 SQL Server

结论先行

.mdf 是主数据文件,每个库有且只有一个;.ndf 是从属数据文件(numbered data file),可以有多个,和主文件一起组成「文件组」。拆多文件的正当理由只有一个:让写入并发分散到多块磁盘(多卷/多 RAID 组)。小库拆文件纯属徒增管理负担。

三种文件角色对照

扩展名 角色 每库数量
.mdf 主数据文件,库定义存这里 恰好 1 个
.ndf 从属数据文件,按扩展区轮转写入 0 到多个
.ldf 事务日志文件 通常 1 个(最多 255 个但极少用)

文件组是逻辑容器:一个文件组装多个 .mdf/.ndf,表、索引可指定落在某个文件组;默认组 PRIMARY 里放着主文件。

什么时候该分多文件

  1. 看 I/O:单文件所在卷的磁盘利用率持续接近 100%,且瓶颈不在缓存而在落盘时,才考虑拆分。
  2. 看卷:拆出来的文件要放到不同物理卷才有意义(同卷多文件只增加句柄不增加带宽)。
  3. 数量经验值:常见做法是按该卷的 CPU 核心数给文件数(如 8 核配 4–8 个),具体数值视机型而定,以实测 IOPS 为准,勿套死公式。

怎么操作

-- 给 PRIMARY 文件组加一个从属文件到另一个卷
ALTER DATABASE Sales ADD FILE (NAME = N'Sales02', FILENAME = N'E:\data\Sales02.ndf', SIZE = 2GB) TO FILEGROUP PRIMARY;

通过 SSMS 管理工具条目 右键数据库 → 文件 → 添加数据文件(可勾选目标卷与大小)也能完成同样的事。新文件初始大小要预估到位——.ndf 的自动增长比主文件慢(按固定步长增长),频繁自动增长本身就是 I/O 抖动源。

SQL Server 2022 Developer 条目环境下练习拆分无成本;大库拆分规划可参考 SQL Server 产品族条目 各版本的部署建议。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常识文章

同一集合内的相近主题,按标签与关键词匹配