我有一个脚本将每个用户的职位发布的相关因素插入到表格中。该表现在有 9300 万行,并且在未来会呈指数级增长。该表只有三个字段:job_id、user_id 和相关性。目前大约有 6500 名用户和大约 45,000 个工作岗位。我需要重新考虑数据建模吗?
这种设置的最佳 DBMS 是什么?
我需要能够按相关性排序并轻松执行类似的操作
SELECT relevance FROM jobpostrelevance WHERE job_id = 1 AND user_id = 2
我有一个脚本将每个用户的职位发布的相关因素插入到表格中。该表现在有 9300 万行,并且在未来会呈指数级增长。该表只有三个字段:job_id、user_id 和相关性。目前大约有 6500 名用户和大约 45,000 个工作岗位。我需要重新考虑数据建模吗?
这种设置的最佳 DBMS 是什么?
我需要能够按相关性排序并轻松执行类似的操作
SELECT relevance FROM jobpostrelevance WHERE job_id = 1 AND user_id = 2
根据我的经验,如果您正在寻找最佳性能的写作,您可以尝试 MongoDB 或 Cassandra,两者都非常好。尽管您的问题似乎适合键值数据库(例如 Cassandra)。
但我会根据“您的硬件”回答您的问题:
如果整个数据库(将)适合内存,我会选择MongoDB,因为你会得到更好的结果。模型:一个文档(MongoDB 是面向文档的),每个“列”作为一个属性。
如果整个数据库不适合内存,我毫不怀疑:Cassandra是最好的选择。如果 MongoDB 不能将全部数据保存在内存中,它的性能会变得更差(您可以在http://www.cubrid.org/blog/dev-platform/nosql-benchmarking/中阅读)。模型:一个 ColumnFamily,每个属性都有 1 个列。
使用 Cassandra,您将能够使用 Hadoop(在其上使用 Pig / Hive)对数据进行排序(我尝试过),但我不知道您是否可以将 MongoDB“连接”到 Hadoop。我的建议:MongoDB 有一个非常好的文档(10gen),而 Cassandra 的文档不如 MongoDB。但如果您需要 Cassandra 文档,您可以访问 datastax 文档:http ://www.datastax.com/docs/1.1/index