在postgresql中对表的列设置的默认值的性能影响

问题描述 投票:0回答:1

如果某个表在列上具有默认值,例如

    create table emp
(
       flag    smallint default 1
)

如果我没有在insert语句中使用,那么这个默认列在批量导入中是否有任何影响。

sql postgresql
1个回答
0
投票

如果您查看生成器/计划器/优化器/重写器的源代码(postgresql / src / backend / rewrite / rewriteHandler.c绕#1112行,函数build_column_default()):

默认值(或函数,例如对于连续出版物)从目录中获取并添加一次到查询树。因此,DEFAULT甚至可能比从查询中的一个表中为所有受影响的行获取单独的值更有效。

但你可以确定衡量差异。

© www.soinside.com 2019 - 2024. All rights reserved.