预处理
最近更新时间: 2024-10-17 17:10:00
TDSQL 支持预处理协议,使用方式与单机 MySQL 相同,例如:
PREPARE Syntax
EXECUTE Syntax
二进制协议的支持:
COM_STMT_PREPARE
COM_STMT_EXECUTE
注意:
目前TDSQL只对Prepare/Execute命令做语法兼容,从性能角度的话,在分布式下建议用户尽量不要使用该种方式,直接使用文本协议。
示例:
MySQL [test]> DROP TABLE IF EXISTS test1;
Query OK, 0 rows affected (0.08 sec)
MySQL [test]> create table test1(a int not null primary key,b int) shardkey=a;
Query OK, 0 rows affected (1.71 sec)
MySQL [test]> insert into test1(a,b) values(5,6),(3,4),(1,2);
Query OK, 3 rows affected (0.06 sec)
Records: 3 Duplicates: 0 Warnings: 0
MySQL [test]> select a,b from test1;
+---+------+
| a | b |
+---+------+
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
+---+------+
3 rows in set (0.02 sec)
mysql> prepare ff from "select a,b from test1 where a=?";
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> set @aa=3;
Query OK, 0 rows affected (0.00 sec)
mysql> execute ff using @aa;
+---+------+
| a | b |
+---+------+
| 3 | 4 |
+---+------+
1 row in set (0.06 sec)