c# - 笛卡尔积应该存储在单个表中还是应该拆分
问题描述
我们有一个笛卡尔积,目前我们存储在一个表中,这个表正在急剧增长,用户可以对这些实体执行更新和读取操作,当用户删除记录时我们有一个软删除。现在我们正受到读取和更新操作的性能问题的打击。基本上,这个笛卡尔积拥有不同角色和类别的权限。
想知道是否有人遇到过类似情况并了解存储笛卡尔积的最佳实践。
我还在考虑将其拆分为 N 表,然后为每种类型单独写入和更新,然后在读取时执行连接。
那么存储笛卡尔积的最佳实践是什么。
解决方案
笛卡尔积只是意味着两个表的乘积,否则它只是一个表而不是笛卡尔积,所以当然应该拆分它,并且在需要时,可以从这两个表中产生笛卡尔积。
想象一下 Table1 和 Table2 各有 1000 条记录,这 2 条的笛卡尔积将有 1000000 条记录,这些记录可以简单地从这 2000 条记录中产生。
当然,使用条件,您可能只生产您需要的笛卡尔积的一部分,而不是全部。
推荐阅读
- sql - 我可以将“多行多列的SELECT结果”作为函数参数吗?
- javascript - Async & Await 使用参数(回调)
- c# - .net core 3.1 API 中的 EventFlow 注册
- java - Java - 通过 HTTP 服务器发送文件
- database - 错误 52。本地数据库运行时。SQL Server Express 安装不正确
- java - 遍历对象数组列表时如何指向对象
- node.js - 使用 node.js 列出 azure 文件共享快照
- java - 在 TextViews 中使用可见/不可见方法创建子文本
- c++ - C++,OpengGL动画如何在线条移动时改变立方体的颜色?
- visual-studio-2019 - Twincat C++ - Visual Studio 配置错误