假设有以 jsonb
格式存储的键值数据字段,对于某些(少数)记录可能不存在,对于这种情况更可取,性能明智 - 空字段或空 json 对象?
要通过一些键值标准查询数据,难度不比:
SELECT * FROM table WHERE id = :id AND jsondata @> '{"key1":"value1"}
并且可能在未来被编入索引,所以问题在于查询 - 空字段是否会比具有空对象的字段更快地被跳过?
最佳答案
NULL 作为位集存储在行标题中,因此可以略快地跳过它们,但如果您只有“少数”记录具有 NULL 值,则差异不太可能会引人注意。
您还可以创建部分索引来排除 NULL。
关于postgresql - Postgres jsonb null vs 空对象查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36286285/