来自MySQL和PostgreSQL,我非常想知道SQL Server如何存储和处理大型物理数据库文件。
根据这篇文章
http://msdn.microsoft.com/en-us/library/aa174545%28SQL.80%29.aspx
SQL Server有3种类型的文件,.mdf
,.ndf
和.ldf
由于数据增长的性质,数据库可以包含数十万个文件。这最终会影响这些.mdf
的大小。
所以问题是,SQL Server如何处理大型物理数据库文件?
我似乎问了很多问题,但我希望得到一个答案也涵盖下面的子问题:
.mdf
文件大小可能会增长到GB或TB。这在现实场景中是否常见?.mdf
分成几部分。而不是拥有1个超大的.mdf
文件,将它拆分成块是否更好?注意:我是SQL Server的新手,SQL Server中的基本查询似乎与MySQL类似,我想了解一下发生了什么"引擎盖下#34;。
答案 0 :(得分:4)
1理论上,mdf文件大小可能会增长到GB或TB。这是 在现实世界中常见的情况?
是的,这很常见。它取决于每秒的读写操作量和磁盘子系统。如今,大小为数百GB的数据库被认为很小。
2由于MSSQL处理单个文件,因此它会有很大的影响 在同一文件上执行大型读/写操作。怎么会这样 影响绩效?
这是最常见的性能瓶颈之一。您需要选择适当的磁盘子系统,并将数据库划分为多个文件组,并将它们放在不同的磁盘子系统上。
3是否有可能(有任何情况下)将mdf拆分成部分。 如果不是拥有1个超大的mdf文件,那么拆分会更好 它变成块?
是的,你可以。这个“块”称为文件组。您可以在不同的文件组中创建不同的表,索引,对象甚至部分表(如果SQL-Server的版本和版本允许)。但只有在跨多个磁盘,RAID等创建文件组时,它才会给您带来优势。有关详细信息,请阅读Using Files and Filegroups