database - 哪些方法需要最少的资源?
问题描述
我目前正在与 Cassandra 一起开发社交网络。我的问题是我在优化服务器消耗的两种解决方案之间犹豫不决。在第一种情况下,当用户发布帖子时,它包含所有信息,如昵称或头像。但是,例如,当用户更改他的昵称时,我必须更改所有帖子的值。情况二,用户的信息和帖子是分开存储的,但是用户每次恢复帖子时,他会打两个逗号而不是一个。从长远来看,这些解决方案中的哪一个最能优化我的服务器速度?谢谢您的回答,
杰斯维尔
解决方案
由于您提到它是一个社交媒体应用程序,因此假设单个用户可以发布大量帖子。此外,由于您提到了使用 Cassandra,第一个场景由于某些原因无法很好地扩展。
广泛的更新可能会以某种方式代价高昂,因为它涉及写入之前的读取操作。它可以被认为是一种反模式。
每个帖子中有关用户的信息都是多余的。从长远来看,确保所有帖子中的用户信息一致将是一件痛苦的事。
第二种选择可能会更好,其中为用户和帖子创建 2 个表,同时在应用程序级别维护关系。
推荐阅读
- java - 自动生成更多 PDF 页面
- javascript - 使用 getSongBPM 时 $.getJSON 不起作用
- php - AWS Lambda 和 Symfony Bref - 部署 Symfony 4 网站
- function - 混合类/对象和函数:代码异味?
- python - 使用一个记录器和多个几乎相同的文件处理程序
- firebase - Firebase 安全规则:允许读取 + 写入除单个集合之外的所有内容
- javascript - JSX 中的多个 If 条件
- python - 有什么理由不使用自动提交吗?
- python - 散景图未嵌入 html
- android - 如何通过自定义 LayoutManager 在 recyclerview 中使用 snapHelper