SCTL

SCTL (ShardingSphere Control Language) 为 ShardingSphere 特有的控制语句, 可以在运行时修改和查询 ShardingSphere-Proxy 的状态,目前支持的语法为:

语句 说明
sctl:set transaction_type=XX 修改当前连接的事务类型, 支持LOCAL,XA,BASE。例:sctl:set transaction_type=XA
sctl:show transaction_type 查询当前连接的事务类型
sctl:show cached_connections 查询当前连接中缓存的物理数据库连接个数
sctl:explain SQL 查看逻辑 SQL 的执行计划,例:sctl:explain select * from t_order;
sctl:hint set MASTER_ONLY=true 针对当前连接,是否将数据库操作强制路由到主库
sctl:hint set DatabaseShardingValue=yy 针对当前连接,设置 hint 仅对数据库分片有效,并添加分片值,yy:数据库分片值
sctl:hint addDatabaseShardingValue xx=yy 针对当前连接,为表 xx 添加分片值 yy,xx:逻辑表名称,yy:数据库分片值
sctl:hint addTableShardingValue xx=yy 针对当前连接,为表 xx 添加分片值 yy,xx:逻辑表名称,yy:表分片值
sctl:hint clear 针对当前连接,清除 hint 所有设置
sctl:hint show status 针对当前连接,查询 hint 状态,master_only:true/false,sharding_type:databases_only/databases_tables
sctl:hint show table status 针对当前连接,查询逻辑表的 hint 分片值

ShardingSphere-Proxy 默认不支持 hint,如需支持,请在 conf/server.yaml 中,将 properties 的属性 proxy.hint.enabled 设置为 true。