💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
OrioleDB从beta10版本开始支持非B树索引,推出桥接索引以兼容PostgreSQL的索引访问方法。桥接索引通过iptr列映射主键,支持MVCC并优化索引性能,用户可灵活管理桥接层,享受PostgreSQL的丰富索引生态。
🎯
关键要点
- OrioleDB从beta10版本开始支持非B树索引,推出桥接索引以兼容PostgreSQL的索引访问方法。
- 桥接索引通过iptr列映射主键,支持MVCC并优化索引性能。
- OrioleDB的索引通过主键值指向行,直接在索引中支持逻辑更新和删除。
- 桥接索引是轻量级的二级索引,将iptr映射到主键值,保持与IndexAM API的兼容性。
- 创建非B树索引时,OrioleDB会隐式添加桥接层,用户无需特别操作。
- 用户可以提前准备桥接层以节省添加索引的时间,也可以在不需要时移除桥接层。
- 桥接计划每匹配行增加一次B树查找,复杂的AM通常开销可忽略,简单查找的索引可能会有一些开销。
- 更新参与桥接索引的列时,iptr会增加,导致在每个桥接IndexAM和桥接索引中插入新条目。
- OrioleDB的桥接索引结合了现代的MVCC感知存储和Postgres丰富的IndexAM生态系统。
- 尽管重写为本地OrioleDB索引的第三方索引会更快,但桥接索引让用户不必在速度和扩展性之间做出选择。
❓
延伸问答
OrioleDB的桥接索引是什么?
桥接索引是OrioleDB中一种轻量级的二级索引,通过iptr列映射主键值,兼容PostgreSQL的索引访问方法。
如何在OrioleDB中创建非B树索引?
在OrioleDB中创建非B树索引时,系统会自动添加桥接层,用户只需使用CREATE INDEX命令即可。
桥接索引对性能有什么影响?
桥接索引会增加一次B树查找的开销,但对于复杂的访问方法,开销通常可以忽略不计。
OrioleDB的桥接索引如何支持MVCC?
OrioleDB的桥接索引通过iptr列指向主键值,支持逻辑更新和删除,确保MVCC信息的有效性。
用户如何管理桥接层?
用户可以提前准备桥接层以节省时间,也可以在不需要时通过ALTER TABLE命令移除桥接层。
OrioleDB的桥接索引与PostgreSQL的索引有什么不同?
OrioleDB的桥接索引使用iptr值而非ctid,支持逻辑更新,且保持与PostgreSQL IndexAM API的兼容性。
➡️