cdm*_*kay 10 postgresql index optimization
在我的应用程序中,我尽可能地进行多行插入,因为它减少了数据库和应用程序之间的往返次数。
不过,我很好奇,还有其他好处吗?例如,如果像这样一次插入多行:
insert into tbl (c1, c2) values
(v1, v2)
(v3, v4)
Run Code Online (Sandbox Code Playgroud)
相对:
insert into tbl (c1, c2) values (v1, v2)
insert into tbl (c1, c2) values (v3, v4)
Run Code Online (Sandbox Code Playgroud)
并且表有索引,索引是在第一种情况下计算一次,在第二种情况下计算两次吗?还是每次插入总是一次?假设两个查询在同一个事务中。
我正在使用 PostgreSQL。
小智 6
我认为@a_horse_with_no_name 关于每个语句更新一次索引是正确的,因为如果语句尚未完成其执行,则数据将不可见,因为它处于事务中。并且语句的定义包括具有多个值
并且根据此处的文档,索引创建/更新在批处理中比单个语句更有效。
Peter Manis还有一篇关于各种 Insert 方法性能的好文章,我可以推荐它。
要记住的另一件事是FILLFACTOR
索引的 ,因为它确实对Fabien Coelho 在这里描述的性能有影响。
归档时间: |
|
查看次数: |
10458 次 |
最近记录: |