3 回答
TA贡献1719条经验 获得超6个赞
在将MongoDb用于社交应用程序两年后,我见证了没有SQL RDBMS的生活真正意味着什么。
您最终要写作业来做一些事情,例如从不同的表/集合中加入数据,而RDBMS会自动为您做这些事情。
您使用NoSQL的查询功能严重受损。MongoDb可能是最接近SQL的东西,但仍然远远落后。相信我。SQL查询超级直观,灵活而强大。MongoDb查询不是。
MongoDb查询只能从一个集合中检索数据,并且只能利用一个索引。MongoDb可能是最灵活的NoSQL数据库之一。在许多情况下,这意味着需要更多往返服务器才能找到相关记录。然后开始对数据进行非规范化-这意味着后台作业。
它不是关系数据库这一事实意味着您将没有外键约束(某些人认为它们表现不佳)以确保数据一致。我向您保证,这最终将在您的数据库中造成数据不一致。做好准备 您很可能会开始编写流程或检查以保持数据库的一致性,这可能不会比让RDBMS为您做的更好。
忘记像休眠这样的成熟框架。
我相信,使用典型的SQL RDBMS,所有项目中的98%可能比使用NoSQL更好。
TA贡献1887条经验 获得超5个赞
存储这些非结构化数据
如您所说,MongoDB最适合存储非结构化数据。这样可以将您的数据整理成文档格式。这些称为NoSQL数据存储区(MongoDB,CouchDB,Voldemort)的RDBMS替代方案对于大规模扩展且需要从这些大数据存储区更快地访问数据的应用程序非常有用。
这些数据库的实现比常规的RDBMS更简单。由于这些是简单的键值或文档样式的二进制对象,因此直接序列化到磁盘中。这些数据存储不会强制使用ACID属性和任何模式。这不提供任何交易功能。因此,这可以扩大规模,并且我们可以实现更快的访问(读取和写入)。
但是相比之下,RDBM对数据执行ACID和架构。如果您想使用结构化数据,则可以继续使用RDBM。
我会选择MySQL创建此类论坛。因为这不会扩大规模。这是一个非常简单(通用)的应用程序,具有数据之间的结构化关系。
添加回答
举报