gpt4 book ai didi

sql - INSERT INTO SELECT 非常慢,但 INSERT 或 SELECT 单独运行时速度很快

转载 作者:行者123 更新时间:2023-12-05 06:00:03 29 4
gpt4 key购买 nike

我有这样一个 SQL:

INSERT INTO table1 (column1, column2) (
SELECT column3, column4 FROM table2 WHERE column5 = 'value'
);
  • table1 有 3,500,000 行。
  • table2 有 900,000 行。
  • SELECT column3, column4 FROM table2 WHERE column5 = 'value' 返回无寄存器(零)并耗时约 0.004 秒。
  • INSERT INTO table1 (column1, column2) VALUES ('value', 'value') 也需要大约 0.004 秒。

但是,当我将两者结合到 INSERT INTO SELECT 语句中时,如上所示,大约需要 7.7 秒。有解释吗?有解决办法吗?

最佳答案

有时,当您使用 SELECT 执行 INSERT 时,性能会变慢,因为原始表中的字段类型与目标表中的字段类型不同,因此当 INSERT-SELECT 执行时,会对 SELECT 中的值进行隐式转换这样它们就可以保留在命运表中。这种隐式转换不是以最佳性能方式进行的,并且有时从值直接插入会更慢。

关于sql - INSERT INTO SELECT 非常慢,但 INSERT 或 SELECT 单独运行时速度很快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67879774/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com