我正在开发适用于 SQL Server 的程序。
对于将数据存储在数据库表中,以下哪种方法是正确的?
在一张表中存储多行(1000 万条记录)
在几个表中存储更少的行(500000 条记录)(exp:每年创建一个表)
我正在开发适用于 SQL Server 的程序。
对于将数据存储在数据库表中,以下哪种方法是正确的?
在一张表中存储多行(1000 万条记录)
在几个表中存储更少的行(500000 条记录)(exp:每年创建一个表)
这取决于您访问数据的频率。如果您不使用旧记录,那么您可以归档这些记录。拆分表是不可取的,因为它可能会使您在获取数据时感到困惑。
我会说将所有数据存储在一个表中,但在旧数据上实现一个表分区。对数据进行分区将提高查询性能。
以下是一些参考资料:
http://www.mssqltips.com/sqlservertip/1914/sql-server-database-partitioning-myths-and-truths/
http://msdn.microsoft.com/en-us/library/ms188730.aspx
请注意,此表分区功能仅在企业版中可用。
这要看情况!你打算用这些数据做什么?如果您多次查询此数据,则将数据拆分为(例如)年份表可能是更好的解决方案。这样,您将获得更好的性能,因为您必须查询较小的表。但另一方面。使用更大的表和良好的查询,您甚至可能看不到性能问题。如果您只需要存储这些数据,最好只使用 1 个表。
顺便说一句,要将这些数据加载到数据库中,您可以使用 BCP(批量复制),这是一种插入大量行的快速方法。