用于保存一类向量或SQL数据库的简单文件

时间:2013-06-29 02:12:57

标签: c++ sql xml json database-connection

我有一个由用户活动的排序数据组成的数据库。如果我想保留每个用户记录哪个记录属于哪个用户(如每个用户的一组数字向量),那么我可以在这里使用的最佳数据库类型是什么?速度很重要,数据库非常大(9千万到7亿记录)。用户数约为200万,所以我认为SQL中的关系连接不是一个好建议。 (编码是用C ++编写的)。

3 个答案:

答案 0 :(得分:2)

我现在将基于我们在评论中的对话提供答案,因为我在评论中写得太多了。

首先,我会使用完整的RDBMS而不是SQLite。该名称的Lite部分应该作为一个指标,它不是一个完整的数据库。我只是这样说,因为如果SQLite在您的大型数据库上表现不佳,我不希望您将其归咎于RDBMS技术,而是归咎于您正在使用的弱数据库。选择PostgreSQL或MySQL,因为它们有更好的优化器(你不必编写代码)。

其次,您的数据库应提供将表连接在一起的功能。它看起来像是:

Select *
From users
  Join activity on users.id = activity.user_id
Where users.id = ###

结合适当的索引应该可以满足您的需求。

就索引而言,主键应为此连接生成适当的索引。您还可以创建外键定义,以便数据库知道表之间的关系,并可以强制执行它。有些数据库不支持外键约束,但这并不重要。

答案 1 :(得分:1)

关系SQL数据库可以很好地处理这个问题 使用PostGreSQL
您可以使用C中的ODBC,这样就可以在需要时更改数据库。

如果您的数据不是真正的关系,您也可以使用redis http://code.google.com/p/credis/

答案 2 :(得分:1)

由于它是一组有序的数据,因此您可以使用NoSQL或Bigtable数据库。 HBaseHadoop等为您提供了OpenSouce资源。