你能分享一下你对可伸缩性的看法吗?
假设我有一个简单的mysql/rdbms数据库,用于类似树的讨论:
table:
讨论(id、url)
注解(id,discussionid,parentcommentid,slug)
评论投票(discussionid,commentid,userid,value)
这样做的目的是在rdbms结构中执行较低频率的写入(与更频繁的读取相反),并在将整个讨论的缓存写入某个读缓存(可能是文档数据库)后重新生成缓存,在该缓存中存储的格式无需进一步处理即可提供给客户端。
我们希望每天有250mb的新数据或每分钟1000个请求(90%的读取)。
在评论投票中,我们应该以某种方式确保,对于特定的评论,每个用户最多有1张投票。
数据库是用discussionid密钥分片的,我们有任意节点数的数据库集群
1./这种布局在现实中能走多远?我是说,我们这里只有三张table。有没有明显的瓶颈?像重建索引,一些表级锁定,。。。在表中的每个insert上,应该有数百千兆位或更多?
2./使用文档数据库进行写操作是否更合理,例如,它们可以更好地处理较小部件的物理锁定?
3./还有其他想法/更好的解决方案吗?
非常感谢。
1条答案
按热度按时间8wtpewkr1#
嗯,管理高负载是一项非常全面的任务,所以你可以试试运气https://dba.stackexchange.com/ 例如
最初的想法
您可以尝试使用postgresql作为mysql更强大的替代方案
对于类似论坛的记录,基于评论/讨论的日期值构建分区是一个很好的解决方案。因此,您需要添加日期字段—例如上次更新、上次读取等。此值还将帮助您从逻辑上决定是否需要存档
如果需要实现快速全文搜索,mysql不是最好的方式