sql - 如何选择适合我的目的的数据库?我想存储文件元数据。

标签 sql database nosql metadata scalability

我正在构建一个网络应用程序,需要我存储有关文件的元数据,每个文件大约有 15-20 个“特征”,包括一些共享的特征(即 user1 和 user2 应该具有访问权限)。

您是否建议为此使用关系数据库?或者更新的、更具可扩展性的 noSQL 数据库是更好的选择吗?

它应该能够快速扩展 - 并允许我们快速读写。

不确定这在性能方面如何与关系数据库一起工作(假设我试图找到 user1 拥有并共享给 user2 具有特定属性的所有文件 - 我基本上必须加入 3-4表放在一起...这可能对性能不利?!)

感谢您的反馈!

最佳答案

我认为 JOINing 3 或 4 个表不会导致性能不佳。如果您正在考虑开源关系型解决方案,我会建议 PostgreSQL,它是目前最丰富的 SQL 实现。但 MySQL 也可以工作,甚至 SQLite 也可以。他们都有不错的表现。

另一方面,如果您需要存储的元数据将来会扩展,那么基于模式的数据库将是一个麻烦。在这种情况下,我会建议使用无模式(也称为基于文档、NoSQL 等)数据库,例如开源 MongoDB。有了索引,它也会有出色的查询性能。 CouchDB 是一个更丰富的实现,但他们不太注重速度。

关于sql - 如何选择适合我的目的的数据库?我想存储文件元数据。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9238748/

相关文章:

mysql - 如何让mysql为where子句中提供的每个键输出行,即使它是重复的

sql - 我应该使用生效日期还是开始日期和结束日期进行历史记录?

asp.net - NoSQL DB for .NET 基于文档的数据库 (ECM)

sql - 如何仅在存在时删除 SQL Server 2008 中的表

mysql - 如何使用 Rails SQL 查询搜索 nil 结果

sql - sqlite更新上的“没有这样的功能”错误

PHP 和 MySQL 图片一键 ActionScript

mysql - 从表中选择除同一表中的某些记录之外的所有记录

snappydata - SnappyData 列表中的列数有限制吗?

Mongodb真实基本用例