2

我在 MySQL 平台上运行以下 SQL 查询。

表 A 是具有单列(主键)和 25K 行的表。表 B 有几列和 75K 行。

执行以下查询需要 20 分钟。如果您能提供帮助,我将很高兴。

INSERT INTO sometable
SELECT A.PrimaryKeyColumn as keyword, 'SomeText', B.*
FROM A, B
WHERE B.PrimaryKeyColumn = CONCAT(A.PrimaryKeyColumn, B.NotUniqueButIndexedColumn);
4

2 回答 2

5

运行SELECT没有 theINSERT以查看问题是否与 the 相关SELECT

如果是SELECT,请按照MySQL 文档说明如何使用EXPLAIN.

如果SELECT运行良好但INSERT需要永远,请确保您没有很多不必要的索引sometable。除此之外,您可能需要进行一些 MySQL 调优和/或操作系统调优(例如,内存或磁盘性能)以通过INSERT.

于 2011-12-25T00:53:48.760 回答
0

如果我猜对了,您大概是在尝试插入 18.75 亿条记录 - (与 where 子句不匹配)。

那20分钟听起来还不错……

于 2011-12-25T20:40:54.680 回答