以下为连接 TDSQL MySQL 版后一些简单的数据库操作介绍,本文以分表为例。
建表
分表、单表、广播表的区别详情请参考 相关表详情文档。
分表键(shardkey)选择的限制请参考 分表键详情文档。
建分表时,需指明分表键(shardkey),代码示例如下:
mysql> create database test;Query OK, 0 rows affected (0.29 sec)mysql> use test;Database changedmysql> create table test1(id int primary key,name varchar(20),addr varchar(20))shardkey=id;Query OK,0 rows affected(0.15 sec)
插入数据
注意:
insert 字段必须包含分表键,否则会拒绝执行。
向刚刚建立的表中插入数据,代码示例如下:
mysql> insert into test1(id,name) VALUES(1,'test');Query OK,1 rows affected(0.08 sec)mysql> insert into test3(name,addr) values('example','shenzhen');ERROR 7013 (HY000): Proxy ERROR:get_shardkeys return error
查询数据
注意:
查询数据时,最好带上分表键,分布式路由将自动跳转到对应分片,此时效率最高。否则,分布式系统会自动全表扫描,然后在网关进行结果聚合,效率较低。
查询数据代码示例如下:
mysql> select id from test1 where id=1;
删除数据
注意:
delete 必须带有 where 条件,where 条件建议带上分表键。
删除代码示例如下:
mysql> delete from test1 where id=1;Query OK, 1 row affected (0.02 sec)