【发布时间】:2020-06-15 13:42:45
【问题描述】:
假设我有一张表t,列有t_id (uuid)、xs (jsonb, a json array)。
我的问题是,SQL update t set xs = xs || '["x1", "x2"]' :: jsonb where t_id = 'some-uuid' 贵吗?
价格昂贵可能有两个原因:
a) || 运算符解析左操作数,所以如果左操作数很大,解析成本会很高
b) 我听说如果你更新任何列,PG 会更新整行,因为xs 列很大,这涉及读取原始值(左操作数),将其与新值连接,然后写入结果到磁盘到新位置(在磁盘上)
我说的对吗?
【问题讨论】:
标签: postgresql jsonb