我有一个postgres表,需要在其中存储任意键/值对,其中一些值可以是数组。我看到postgres支持JSONB和Array字段类型,并考虑使用JSONB,并且一直在审查关于索引的JSONB文档
我试图理解的是,考虑到字段中存储的json模式会越来越不同,字段是否可以有效地进行索引?
例如,假设我有一个表来存储插件数据,并且这些插件将被允许为每个用户存储他们想要的任意多的密钥。
如果
- 插件的数量会增加,但可能会<100
- json字段值大多是简单的json对象,深度为一级
- 如果有帮助的话,我完全可以控制每个插件的json模式
插件数据
key | value(JSONB( | plugin_type | >userId |
---|---|---|---|
plugin.one | {id:1,test:'two'} | one | 100 |
plugin.one | {id:32,测试:'my-title'} | one | 102 |
plugin.two | |||
plugin.three | {持续时间:10s} | 三个 | /table>
是的,您可以使用GIN索引对列进行索引。这将加速对具有?
、?&
和?|
的关键字以及包含运算符@>
的关键字的搜索;子对象";包含。