我正在构建一个web应用程序,它需要我存储关于文件的元数据,每个文件大约有15-20个“特征”,包括一些共享的(即user1和user2应该有访问权限)。
为此,您是否建议使用关系数据库?或者更新的、更具伸缩性的noSQL数据库是更好的选择?
它应该是可快速扩展的东西--并允许我们快速读写。
就性能而言,我不确定这将如何与关系数据库一起工作(例如,我试图查找所有由user1拥有并共享给user2的具有特定属性的文件-我基本上必须将3-4个表连接在一起……这可能对性能不好?!)
感谢您的反馈!
发布于 2012-02-11 16:19:01
我不认为JOINing 3或4个表会导致糟糕的性能。如果您正在考虑开源关系解决方案,我建议您使用PostgreSQL,它是目前最丰富的SQL实现。但是MySQL也可以工作,甚至SQLite也可以。他们都有不错的表现。
另一方面,如果您需要存储的元数据将来会扩展,那么基于模式的数据库将是一个麻烦。在这种情况下,我建议使用无模式(也称为基于文档的、NoSQL等)数据库,比如开源的MongoDB。有了索引,它也将具有出色的查询性能。CouchDB是一个更丰富的实现,但他们不太关注速度。
发布于 2012-02-11 21:53:10
我认为关系型数据库非常适合这一点。NoSQL数据库通常不允许简单灵活的查询。这是优秀的旧SQL数据库的优点。
发布于 2012-02-11 23:31:13
存储文档和其中的一些信息并不是SQL数据库的强项。
我不会选择MySQL,因为它的许可证(或者更确切地说是它的数据提供商的许可证),而且因为你不能说甲骨文将来会用它做什么。
您正在寻找一个针对存储文档进行了优化、速度极快且易于设置(和使用)的NoSQL数据库。
其中一个是用C++编写的,而不是Java,我猜想non-the-less有.NET和Java的绑定。
我会说MongoDB将是理想的选择。
https://stackoverflow.com/questions/9238748
复制相似问题