"OceanBase数据库中我把几张表放到同一个table group里面,为什么看副本分布这些表的leader还是打散的呢,同table group的primary zone不是一样的吗?
我把ob_read_consistency设置成weak再select也还是有分布式扫描。Root登录。"
在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,但这可能会增加写延迟。
"表组是一种逻辑概念,默认情况下,不同表之间的数据是随机分布的,没有直接关系。
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000034953
此回答整理至钉群“[社区]技术答疑群OceanBase”"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。