笛卡尔积应该存储在单个表中还是应该拆分

时间:2018-09-28 19:37:22

标签: c# .net sql-server database database-performance

我们有一个笛卡尔积,当前我们存储在一个表中,并且该表正在急剧增长,用户可以对这些实体执行更新和读取操作,并且当用户删除记录时我们可以进行软删除。 现在,我们受到读取和更新操作的性能问题的打击。 基本上,此笛卡尔积拥有不同角色和类别的权限。

想知道是否有人遇到过类似情况并了解存储笛卡尔积的最佳实践。

我还考虑将其拆分为N个表,然后针对每种类型分别进行写入和更新,然后在读取时执行连接。

那么存储笛卡尔积的最佳实践是什么。

1 个答案:

答案 0 :(得分:1)

笛卡尔积仅表示两个表的乘积,否则它只是一个表而不是笛卡尔积,因此当然应该将其拆分,并且在需要时可以从这两个表中产生笛卡尔积。

想象一下Table1和Table2每个都有1000条记录,这2个笛卡尔积将有1000000条记录,这些记录可以简单地从这2000条记录中产生。

当然,根据条件,您可能只生产所需笛卡尔乘积的一部分,而不是全部。