我正在设计一个 postgres 数据库,其中有一个表,该表有一个 jsonb 类型的列。我希望此列是唯一的。表中不需要有两个具有完全相同 json 配置的对象。总的来说,对于未保存在数据库中的每个重复项,这将为我节省大约 5 分钟的计算时间。我知道在字典方面存在 json 唯一性的风险(无法保证键的顺序),但我认为一个好的 json 编码器可以缓解这个问题。
我担心的是数据库性能。我想确保我们尽一切可能确保插入不会因为 jsonb 上的这种唯一性约束而变得非常慢。与 varchar 或 int 上的唯一性相比,jsonb 上的唯一性约束有多糟糕?我们说的是毫秒、秒还是分钟?
我研究过哈希索引,它听起来确实是我实现最佳性能所需的全部功能。但是。只有 B 树类型的索引才是唯一,这很奇怪。为什么?