开发者社区> 问答> 正文

OceanBase数据库中我把几张表放到同一个里,为什么看副本分布这些表的leader还是打散的?

"OceanBase数据库中我把几张表放到同一个table group里面,为什么看副本分布这些表的leader还是打散的呢,同table group的primary zone不是一样的吗?
我把ob_read_consistency设置成weak再select也还是有分布式扫描。Root登录。"

展开
收起
十一0204 2023-09-26 23:54:16 44 0
来自:OceanBase
2 条回答
写回答
取消 提交回答
  • 在OceanBase数据库中,Table Group是用来合并多个物理表,并将它们视为一个逻辑表的一种机制。每个Table Group都有一个Primary Zone,这个Zone中的副本会被选为Leader副本,负责处理Read/Write请求。其他非Leader副本则被称为Follower副本,只处理Read请求。

    然而,即使多个表被放入同一个Table Group,OceanBase数据库仍然可能会分散副本,以确保数据的分布均匀和负载均衡。这是因为OceanBase数据库会自动平衡每个Table Group的读写压力,避免某些区域的Leader副本过载。

    至于你提到的分布式扫描,这可能是因为你的查询条件没有正确地使用索引,或者是因为你的查询涉及到多个表,需要进行跨表的联合查询。在这种情况下,即使你设置了ob_read_consistency为weak,OceanBase数据库仍然可能会进行分布式扫描,因为weak读并不能保证在所有情况下都能避免分布式扫描。

    如果你希望减少分布式扫描,你需要优化你的查询语句,尽可能地使用索引,并减少不必要的联合查询。你也可以考虑使用更强的读一致性模式,如strong和super,但这可能会增加写延迟。

    2023-09-27 11:18:31
    赞同 展开评论 打赏
  • 意中人就是我呀!

    "表组是一种逻辑概念,默认情况下,不同表之间的数据是随机分布的,没有直接关系。
    https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000034953
    此回答整理至钉群“[社区]技术答疑群OceanBase”"

    2023-09-27 08:02:48
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载