现在我在Mysql中有3列的表.
DocId Int
Match_DocId Int
Percentage Match Int
我正在存储文档ID以及其几乎重复的文档ID和百分比,以表明两个文档的匹配程度.
因此,如果一个文档有100个几乎重复的副本,则该特定文档有100行.
目前,此表有10亿条记录,共1400万个文档.
我预计文档总数将达到3000万.这意味着我存储几乎重复信息的表将超过50亿行,甚至可能更多. (几乎所有重复数据与总文档集相比呈指数增长)
这是我遇到的几个问题:
>在mysql表中获取所有记录会花费很多时间.
>查询也要花费很多时间.
这是我运行的一些查询:
>检查特定文件是否几乎重复. (这相对较快,但仍然很慢)
>检查给定的文档集,每个百分比范围(百分比范围是86-90、91-95、96-100)中有几近重复?
该查询花费大量时间.大多数情况下,它会失败.我要按百分比列分组.
可以使用任何可用的NoSql解决方案进行管理吗?
我对NoSql解决方案的SQL查询支持表示怀疑,因为我在查询数据时需要分组支持.
解决方法:
的MySQL
您可以尝试使用当前的MySql解决方案进行分片,即将大型数据库拆分为较小的独特数据库.这样做的问题是您一次只能使用一个分片,这会很快.如果您打算在多个分片上使用查询,那将非常缓慢.
NoSql
Apache Hadoop堆栈值得一看.有几种系统可以让您执行稍有不同的查询.好的一点是,它们之间往往都可以很好地互操作.
Check if particular document has any near duplicate. (this is
relatively fast, but still slow)
HBase可以在大桌子上完成这项工作.
Check for given set of documents, how many near duplicates are there
in each percentage range ? (Percentage range is 86-90, 91-95 , 96-100)
这应该很适合Map-Reduce
还有许多其他解决方案,有关其他NoSql数据库的列表和简要说明,请参见this link.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!