以下哪个查询具有更好的性能?这两个查询的优点是什么?我想讨论插入1000行和100k行的场景谢谢。
第一
INSERT INTO table_name (col1,col2) VALUES (value1, value2);
INSERT INTO table_name (col1,col2) VALUES (value3, value4);
第二
INSERT INTO table_name
SELECT (col1,col2)
FROM (
SELECT value1 as col1, value2 as col2 UNION ALL
SELECT value3 as col1, value4 as col2
) A
答案 0 :(得分:2)
我认为您需要使用批量插入。 以下是.net http://www.dotnetcurry.com/ShowArticle.aspx?ID=323&AspxAutoDetectCookieSupport=1
中的示例答案 1 :(得分:2)
第二个查询将更好地执行,因为数据库引擎必须只分析并执行一个语句。但差异将是微不足道的,仅对大插入(大于100)有用但最好的方法是
INSERT INTO table_name (col1,col2) VALUES (value1, value2),(value3, value4);
但是你的查询2的语法应该是 INSERT INTO table_name SELECT col1,col2 FROM( 将value1选为col1,将value2选为col2 UNION ALL SELECT3作为col1,value4作为col4 )A