gpt4 book ai didi

mysql - 高可用讨论db模型-mysql

转载 作者:行者123 更新时间:2023-11-29 10:02:28 25 4
gpt4 key购买 nike

您能分享一下您对可扩展性的见解吗?

假设我有一个简单的以下 MySQL/RDBMS 数据库,用于树状讨论:

表格:

  • 讨论(id、url)
  • 评论(id、discussionId、parentCommentId、slug)
  • comment_vote(讨论 ID、评论 ID、用户 ID、值)

这个想法是对该 RDBMS 结构执行频率较低的写入(与更频繁的读取相反),并在写入后重建缓存以将整个讨论写入某些读取缓存(可能是文档数据库),其中存储了可以提供服务的格式无需对客户端进行进一步处理。

  • 假设每天有 250MB 的新数据或每分钟 1000 个请求(90% 是读取)。
  • 在 comment_vote 中,我们应该以某种方式确保对于特定评论,每个用户最多有 1 票。
  • 数据库使用discussionId键进行分片,并且我们拥有具有任意数量节点的数据库集群

1./这种布局实际上能走多远?我的意思是,我们这里只有 3 张 table 。有没有明显的瓶颈?就像重建索引,一些表级锁定,...在表中的每次插入上,应该有数百千兆位甚至更多?

2./使用文档数据库进行写入会更合理吗,因为例如他们可以更好地处理较小零件的物理锁定吗?

3./还有其他想法/更好的解决方案吗?

非常感谢。

最佳答案

嗯,管理高负载是一项非常全面的任务,所以你可以在 https://dba.stackexchange.com/ 上碰碰运气。例如

初步想法

  1. 您可以尝试使用 PostgreSQL 作为 MySQL 的更强大替代品
  2. 对于类似论坛的记录,根据评论/讨论的日期值构建分区可能是一个很好的解决方案。因此,您需要添加日期字段 - 例如上次更新、上次读取等。这些值还将帮助您从逻辑上决定是否需要存档
  3. 如果需要实现快速全文搜索MySQL并不是最好的方法

关于mysql - 高可用讨论db模型-mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com