盟主熊
2024 年1 月 11 日 10:14
#1
【 使用环境 】生产环境
【 OB or 其他组件 】Observer
【 使用版本 】社区版3.1.4_BP3
【问题描述】在评估一类生产需求,在大数据量下取最近1000条的数据,预估每个分区的数据量,按第一个索引过滤最大为1000万,再按第二个索引进行 order by desc limit 1000。可能会裁剪7个分区(7000万排序)
OceanBase目前没有逆序索引,但是好像有索引的逆序扫描,请问此功能在社区版的哪些版本 里有支持?是否能提升这个场景的性能。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(系统巡检和诊断信息收集)
盟主熊
2024 年1 月 11 日 13:45
#5
如果都不支持,那面对海量数据的逆序排序,有什么可以优化的方案?我们测下来order by desc 的耗时是order by的10倍以上
盟主熊
2024 年1 月 11 日 13:48
#6
王利博
2024 年1 月 11 日 13:50
#7
OceanBase数据库虽然不直接支持逆序索引,如Oracle数据库中通过函数索引来实现的降序索引。然而,在执行计划中,它可以根据正序索引的插入顺序进行逆序扫描,以优化某些查询场景下的性能。因此,在执行计划层面,OceanBase是可以支持对正序索引进行逆序扫描的实现方式,但这并非基于专门的逆序索引类型。OceanBase仍然能够在执行计划阶段智能地调整扫描策略,以满足降序查询的需求。