我在MySQL中遇到大数据问题。

我们有两个结构相同的大表,用于存储英汉并行语料库。这两个表都包含千万级的记录。一个表中以及这两个表之间有很多重复的数据(例如,相同的英文和中文内容)。我们想要合并两个表以通过删除数据冗余来获得一个干净的表。但是,我们发现面对大数据挑战并非易事。主要问题是,当我们尝试在MySQL中合并这两个表时,将发生内存溢出。

表的数据结构

id  ---     en     ---   cn
0   ---   an apple ---  一个苹果
1   ---   an orange---  一个桔子
0   ---   an apple ---  一个苹果

最佳答案

此问题通常是由于在查询中使用的所有列上缺少适当的索引。创建索引,然后重试。

例如,假设您有以下查询:

SELECT *
FROM t1
INNER JOUN t2 ON t2.t1_id = t1.id
WHERE t1.col1 = 10
  AND t2.col2 = 20


您将需要在此查询的所有4列上创建索引:


t1.id
t2.t1_id
t1.col1
t2.col2


注意:如果t1.id是主键,则它有一个索引,您不需要为其创建索引,因此只需在其他3列上创建索引。

关于mysql - 删除mysql中的重复数据(在大数据情况下),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33077180/

10-13 07:31
查看更多