下面这种语法如果对应的语句字段没加列存的话 我请求路由到列存节点了 开启列存节点没开启行存支持 PolarDB请求会回退到行存节点执行吗?HINT 列存执行:/+ SET_VAR(cost_threshold_for_imci=0) SET_VAR(imci_ap_threshold=0) /
HINT 行存执行:/+ SET_VAR(use_imci_engine=OFF) /
在PolarDB中,如果您的语法对应的语句字段没有添加列存,并且您已经将请求路由到了列存节点,但是该列存节点没有开启行存支持,那么根据PolarDB的内部处理机制,请求可能会遇到问题。
通常情况下,如果一个查询无法在列存上执行,而目标节点又不支持行存,PolarDB可能会有以下几种处理方式:
在您提供的HINT语法中:
HINT 列存执行:/+ SET_VAR(cost_threshold_for_imci=0) SET_VAR(imci_ap_threshold=0) /
这个HINT是用于强制或优化在列存上的执行。HINT 行存执行:/+ SET_VAR(use_imci_engine=OFF) /
这个HINT则是用于强制在行存上执行查询。然而,这些HINT并不能解决列存节点未开启行存支持的问题。在实际操作中,您需要确保数据和节点配置能够支持您的查询需求。如果列存节点未开启行存支持,而查询又无法在列存上执行,那么可能需要调整节点配置、数据存储策略或者查询语句以适应系统的当前配置。
集群地址的话,现在都是默认先到行存节点,如果决定走列存再路由到列存节点。 你这种场景下无法列存执行,会直接在行存节点执行,HINT不会起作用的。此回答整理自钉群“PolarDB 专家面对面 - 慢SQL索引选择优化器新特性”
楼主你好,当使用列存节点进行请求时,只会在列存节点上执行查询操作并返回结果,而不会回退到行存节点执行,即使使用HINT语法指定行存执行,也不会触发回退到行存节点执行的操作。
在PolarDB中,开启列存节点后,查询请求会通过内部的路由机制根据查询语句的特征选择合适的存储引擎进行处理。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。