首页 > 解决方案 > 笛卡尔积应该存储在单个表中还是应该拆分

问题描述

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

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

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

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

标签: c#.netsql-serverdatabasedatabase-performance

解决方案


笛卡尔积只是意味着两个表的乘积,否则它只是一个表而不是笛卡尔积,所以当然应该拆分它,并且在需要时,可以从这两个表中产生笛卡尔积。

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

当然,使用条件,您可能只生产您需要的笛卡尔积的一部分,而不是全部。


推荐阅读