开发指南常见问题:指定分库执行SQL
- 建站教程
- 2024-09-25 20:16:01
在使用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”