如果您能帮助解决一个新手问题,我将不胜感激。我应用以下 SQL:
INSERT INTO t03_hesid_history(uniqueID, hes_data_all_years.extract_hesid, FIELD1, FIELD2)
SELECT uniqueID, hes_data_all_years.extract_hesid, FIELD1, FIELD2
FROM hes_data_all_years
INNER JOIN T02_hesid_grouped
ON hes_data_all_years.extract_hesid = T02_hesid_grouped.extract_hesid;
hes_data_all_years 表有 1.88 亿条记录,T02_hesid_grouped 表有 80,000 条记录。T02_hesid_grouped 表有一个名为 extract_hesid 的(唯一)字段,该字段已编入索引。hes_data_all_years 有许多字段,并且在正在连接的 extract_hesid 字段上有一个索引。
该查询旨在提取 hes_data_all_years 中与 T02_hesid_grouped 字段匹配的所有记录。我希望输出提供 1-2m 条记录。
查询大约需要 4 小时...
时间长度是由于数据集大小还是可以进行一些优化?非常感谢!!
SELECT 部分的 EXPLAIN 输出如下所示:
1 SIMPLE T02_hesid_grouped index I_HESID I_HESID 43 79824 Using index
1 SIMPLE hes_data_all_years ref I_HESID I_HESID 43 hes.T02_hesid_grouped.extract_hesid 1 Using where