首页 > 互联资讯 > 建站教程  > 

开发指南常见问题:指定分库执行SQL

在使用PolarDB-X的过程中,如果遇到某个PolarDB-X不支持的SQL语句,可以通过PolarDB-X提供的NODE HINT,直接将SQL下发到一个或多个分库上去执行。此外如果需要单独查询某个分库或者已知分库的某个分表中的数据,也可以使用NODE HINT,直接将SQL语句下发到分库中执行。

语法

NODE HINT支持通过分片名指定SQL在分库上执行。其中分片名是PolarDB-X中分库的唯一标识,可以通过SHOW NODE语句得到。

通过分库名指定SQL在分库上执行分两种使用方式,分别是指定SQL在某个分库上执行和指定SQL在多个分库上执行。

注意 如果在目标表包含Sequence的INSERT语句上使用了指定分库的HINT,那么Sequence将不生效。更多相关信息,请参考使用限制。

• 指定SQL在某个分库上执行:

/*+TDDL:node('node_name')*/

• node_name为分片名,通过这个PolarDB-X自定义HINT,就可以将SQL下发到node_name对应的分库中执行。

• 指定SQL在多个分库上执行:

/*+TDDL:node('node_name'[,'node_name1','node_name2'])*/

• 在参数中指定多个分片名,将SQL下发到多个分库上执行,分片名之间使用逗号分隔。说明

• • 使用该自定HINT 时,PolarDB-X会将SQL直接下发到分库上执行,所以在SQL语句中,表名必须是该分库中已经存在的表名。

• NODE HINT支持 DML、DDL、DAL语句。

注意事项

• PolarDB-X自定义HINT支持/*+TDDL:hint_command*/和/!+TDDL:hint_command*/两种格式。

• 如果使用/*+TDDL:hint_command*/格式,在使用MySQL官方命令行客户端执行带有PolarDB-X自定义HINT的SQL时,请在登录命令中加上-c 参数。否则,由于PolarDB-X自定义HINT是以MySQL 注释形式使用的,该客户端会将注释语句删除后再发送到服务端执行,导致PolarDB-X自定义HINT失效。具体请查看MySQL 官方客户端命令。


开发指南常见问题:指定分库执行SQL由讯客互联建站教程栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“开发指南常见问题:指定分库执行SQL