0

我需要在系统中存储项目的投票(按 id)。我估计它会有大约 500 万张选票。每张选票包括:

  • 投票项目的id
  • 用户数据1
  • 用户数据2
  • 约会时间

“userdata”字段将用于在投票结束时检测作弊者。投票期间,所有选票均应登记。

我需要能够检索两种信息:

  • 大约每1分钟)每个“投票项目的id”有多少票
  • 大约每 1 小时)在将一些过滤器应用于“用户数据”字段后,每个“投票项目的 id”有多少票(比如两者在某个日期时间间隔内必须是唯一的,或类似的东西)......我不想要能够以 SQL 查询的形式编写这些过滤器...我想遍历所有约 500 万票并创建一个新的表/数据结构,该结构将具有结果,然后将其返回给应用程序

插入投票应该没什么大不了的(大约每秒 2 次,所以我想任何数据库都可以很好地处理它)

我倾向于使用 mongoDB 之类的东西,因为迭代 DB 和创建过滤器需要“脚本”。但也许它可以通过存储过程上的 SQL 或键值(Redis?5mi 投票应该适合小于 2 GB 的 RAM)数据库来解决?

4

1 回答 1

2

我认为图形数据库是您所需要的。我可以推荐 OrientDB (http://www.orienttechnologies.com/)。这是一个非常酷且功能齐全的开源图形数据库。它是用 Java 编写的,但您可以使用不同的客户端驱动程序。1.0 稳定版即将发布(< 2 周)。如果你想试一试,你可以在云端免费使用它(http://www.nuvolabase.com/),所以你不需要安装和配置它。它是完整的模式、混合模式和少模式,支持图形、sql、集群等等,您可以根据需要灵活地对数据进行建模。

于 2012-04-07T17:05:01.220 回答