tdsql支持3种表:
单表
表结构与数据只存在于第一个set上. 使用和普通mysql完全一样.
分表
对分表键(shardkey)做murmurHashCodeAndMod运算, 数据均匀分布在每个set上(这个说法其实不严谨)
广播表
每个set上都有完整的表数据. 做join的时候方便.
语法: https://cloud.tencent.com/document/product/557/8767
官方说tdsql-mysql不支持存储过程
对分表创建存储过程:
对单表创建存储过程
其实实际使用单表的场景不多的, 也不建议使用单表.
可以创建成功
但是无法直接调用存储过程
网关(proxy)不支持直接调用, 为啥不支持呢?
绕过网关调用存储过程
网关(proxy)不支持, 但是底层是mysql, mysql是支持的啊, 所以我们可以直接到set上去执行.
其实这一点可以官方改进的.
查看后台set信息
1. sql透传查看
2. 控制台点鼠标
然后把sql发往对应的set上执行即可(单表是第一个set).
这样是可以的, 但是不建议这么做.
思考一下: 如果我先创建存储过程, 再创建分表, 再透传sql调用存储过程行不行?
答案:不行
对广播表创建存储过程
也是不支持的,
其实也可以使用透传sql, 每个set都创建相同的存储过程, 调用的时候透传到每个set上执行.
结论:
tdsql-mysql版不支持创建存储过程(单表除外), 不支持调用存储过程.
但是单表可以使用sql透传调用存储过程.
题外话:
恭喜自己获得数据库交付运维专家-腾讯云TDSQL(MySQL版)证书^_^