我正在开发一个旨在记录大量数据的小项目,我估计我需要在我的数据库中存储大约1亿到1亿5千万行数据。这些行不包含太多数据,但会有频繁的插入,我想要相对快速的数据检索(这种情况很少发生,但需要快速聚合数据)。
根据我在这些尺寸上阅读的信息,我需要知道我在做什么,并确保正确设置索引等。然而,我能做的就是将我的数据表拆分(大约250,500k行表)。
我想第一个问题是,有人可以证实这是一个好主意吗?从我读过的东西来看,我相信读取/插入应该更快,所以这似乎是一个合乎逻辑的步骤。
我还计划为此使用实体框架(尽管表格非常简单),但我不确定是否可以将同一实体映射到许多不同的表格。我发现了很多关于将两个表映射到相同实体的文章。所以第二个问题是Entity Framework是否允许您将两个表映射到相同类型的不同实体?
答案 0 :(得分:1)
将数据拆分成多个单独的表不是个好主意。一般而言,数据库和SQL Server尤其可以处理大型表,甚至包含数亿行的表。并且,使用数千个表的含义令人生畏。它可以防止您设置触发器和外键引用。它使安全性变得更加困难。仅列出数据库中的表格是令人生畏的。
可能对您有帮助的一项功能是垂直分区,描述为here。分区允许您将一个表存储在单独的表空间中。这可以加快查询速度,因为可能只需要读取一个分区。这可以加快删除速度,因为可以通过删除分区来处理某些删除操作。