作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样一个 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/
我是一名优秀的程序员,十分优秀!