SCTL

定义

SCTL (ShardingSphere Control Language) 为 Apache ShardingSphere 的控制语言,负责Hint、事务类型切换、分片执行计划查询等增量功能的操作。

使用实战

语句说明
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 PRIMARY_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 状态,primary_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。