在我的应用程序中,我会尽可能执行多行插入操作,因为这会减少数据库与应用程序之间的往返次数。
但是,我很好奇,还有其他优势吗?例如,如果像这样一次插入多行:
insert into tbl (c1, c2) values
(v1, v2)
(v3, v4)
与:
insert into tbl (c1, c2) values (v1, v2)
insert into tbl (c1, c2) values (v3, v4)
并且该表具有索引,在第一种情况下该索引是计算一次,在第二种情况下是两次计算?还是每次插入总是一次?假定两个查询都在同一事务中。
我正在使用PostgreSQL。
2
我认为索引已更新,它是每个语句一次,而不是每行一次。因此,单个语句应该比两个语句更有效。但是我不确定(因此没有答案,只是评论)
—
a_horse_with_no_name 2014年
我认为正确的问题是,它是否封装在同一笔交易中。如果两者兼而有之,就不会有什么区别。
—
user1363989 2014年
@ user1363989,我已经更新了我的问题,以指示两个查询将在同一笔交易中
—
cdmckay 2014年