实现评论系统(大数据写入)的最佳方式是什么?评论系统rdbms vs nosql
1)使用RDBMS数据库如MySQL,2桌一个主题,一个用于注释 优点是新评论的插入是快速,高效,简单,高效的索引。 缺点是缩小(水平缩放)很难。
2)使用的NoSQL数据库,比如CouchDB的或MongoDB中,优点是向外扩展(水平缩放)很容易,支持庞大的数据写入,无模式缺点我认为新数据的插入是不如RDBMS快速高效
例如,要更新couchdb文档,您需要获取整个文档,在本地进行更新,然后再次提交,文档大小将会很大,因此会占用带宽。
而且我认为,CouchDB的就地更新,MongoDB的更新将是缓慢的,不会有效,因为在RDBMS
此外,当您想获得各种主题的每个用户的我觉得评论在RDBMS中搜索会比在nosql系统中更快。
也就是说CouchDB的数据库文件的[文件样本每个主题]样品
{"_id":"doc id",
"_rev":"45521231465421"
"topic_title":"the title of the topic"
"topic_body":"the body of the topic"
"comments":[
{"date":"mm/dd/yy hh:mm:ss"}, {"commment":"bla1"}, {"user":"user1"}
{"date":"mm/dd/yy hh:mm:ss"}, {"commment":"bla2"}, {"user":"user2"}
{"date":"mm/dd/yy hh:mm:ss"}, {"commment":"bla3"}, {"user":"user3"}
{"date":"mm/dd/yy hh:mm:ss"}, {"commment":"bla4"}, {"user":"user4"}
{"date":"mm/dd/yy hh:mm:ss"}, {"commment":"bla5"}, {"user":"user5"}
{"date":"mm/dd/yy hh:mm:ss"}, {"commment":"bla6"}, {"user":"user6"}
]
}
为什么你认为CouchDB的或MongoDB中插入数据时速度较慢?你是用自己的基准来验证它,还是只是在听你的直觉? – Philipp 2013-05-09 20:29:15
要给couchdb文档添加注释,您需要获取整个文档,在本地更新它,然后再次提交,文档大小将很大,因此会占用带宽。所以它会“慢” – 2013-05-09 20:40:16
为什么你会将你的评论嵌入到博客文章中?你是否期望当你显示博客帖子时,你还需要显示它的所有评论?为什么你认为RDBM中的搜索速度会比MongoDB更快?它们都使用索引,两个结构索引都是B树。你为什么不实际测试你预期使用的数据? – 2013-05-10 05:23:57