gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 08:20:51 26 4
gpt4 key购买 nike

现在我在 Mysql 中有一个包含 3 列的表。

DocId             Int
Match_DocId Int
Percentage Match Int

我正在存储文档 ID 及其几乎重复的 文档 ID百分比,它们指示两个文档的匹配程度。

因此,如果一个文档有 100 个几乎重复的文档,那么该特定文档就有 100 行。

目前,该表有超过 10 亿条记录,总共 1400 万个文档。我预计文档总数将达到 3000 万。这意味着我存储近乎重复信息的表将有超过 50 亿行,可能不止于此。 (与总文档集相比,几乎重复的数据呈指数增长)

以下是我遇到的几个问题:

  1. 获取 mysql 表中的所有记录需要花费大量时间。
  2. 查询也需要很多时间。

以下是我运行的几个查询:

  • 检查特定文档是否有几乎重复的内容。 (这个比较快,但是还是慢)

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

    这个查询需要很多时间。大多数时候它失败了。我将按百分比列分组。

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

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

最佳答案

MySQL

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

NoSql

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

Check if particular document has any near duplicate. (this isrelatively fast, but still slow)

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

Check for given set of documents, how many near duplicates are therein each percentage range ? (Percentage range is 86-90, 91-95 , 96-100)

这应该很适合 Map-Reduce


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

关于mysql - 哪个 NoSql 用于存储数十亿个整数对数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com