哪个NoSql用于存储数十亿的整数对数据?

时间:2012-08-09 09:00:55

标签: mysql nosql

现在我在Mysql中有3列表。

DocId             Int
Match_DocId       Int
Percentage Match  Int

我正在存储文档ID 及其近似重复的文档ID 百分比,它们表明两个文档的匹配程度。

因此,如果一个文档有100个接近重复的文件,那么我们就有100行用于该特定文档。

目前,该表拥有超过10亿条记录,总计1400万份文档。 我预计总文件将高达3000万。这意味着我的表存储了近乎重复的信息,其行数超过5亿,可能不止于此。 (近似重复数据与总文档集成指数增长)

以下是我遇到的一些问题:

  1. 在mysql表中获取所有记录需要花费大量时间。
  2. 查询也需要很多时间。
  3. 以下是我运行的几个查询:

    • 检查特定文档是否有任何近似重复。 (这个比较快,但仍然很慢)

    • 检查给定的文档集,每个百分比范围内有多少重复项(百分比范围是86-90,91-95,96-100)?

      此查询需要大量时间。大部分时间都失败了。我按百分比列分组。

    可以使用任何可用的NoSql解决方案进行管理吗?

    我对NoSql解决方案的SQL查询支持持怀疑态度,因为我在查询数据时需要支持分组。

2 个答案:

答案 0 :(得分:2)

的MySQL

您可以尝试使用当前的MySql解决方案进行分片,即将大型数据库拆分为较小的独特数据库。问题是你应该一次只使用一个分片,这会很快。如果您打算在多个分片中使用查询,那么这将非常缓慢。

的NoSql

Apache Hadoop堆栈值得一看。有几个系统允许您执行稍微不同的查询。一个好的观点是,它们都倾向于在彼此之间很好地互操作。

  

检查特定文档是否有任何近似重复。 (这是   相对较快,但仍然很慢)

HBase可以为大桌做这个工作。

  

检查给定的文档集,有多少个重复项   在每个百分比范围? (百分比范围是86-90,91-95,96-100)

这应该非常适合Map-Reduce


还有许多其他解决方案,请参阅this link以获取其他NoSql数据库的列表和简要说明。

答案 1 :(得分:1)

我们与Redis有很好的经历。它很快,可以像你想要的那样可靠。其他选项可以是CouchDBCassandra