我在MySQL中遇到了大数据的大问题。
我们有两个大表,结构相同,用于存储英汉并行语料库。这两个表都包含一千万年级的记录。在一个表内和这两个表之间存在大量重复数据(例如,相同的英文和中文内容)。我们希望通过删除数据冗余来将两个表联合起来以获得干净的表。但是,我们发现大数据的挑战并不容易。主要的问题是,当我们尝试在MySQL中联合这两个表时会出现内存溢出。
表格的数据结构
id --- en --- cn
0 --- an apple --- 一个苹果
1 --- an orange--- 一个桔子
0 --- an apple --- 一个苹果
答案 0 :(得分:0)
此问题通常是由于您在查询中使用的所有列上都缺少正确的索引。创建索引并重试。
例如,假设您有以下查询:
SELECT *
FROM t1
INNER JOUN t2 ON t2.t1_id = t1.id
WHERE t1.col1 = 10
AND t2.col2 = 20
您需要在此查询的所有4列上创建索引:
注意:如果t1.id是主键,那么它有一个索引,你不需要为它创建一个索引,所以只需在其他3列上创建索引。