TDSQL分表操作

最近更新时间:2019-04-25 09:40:08

以下为连接 TDSQL 后一些简单的数据库操作介绍,本文以分表为例。

建表

  • 分表、单表、广播表的区别详情请参考 相关表详情文档
  • 分表键(shardkey)选择的限制请参考 分表键详情文档
  • 建分表时,需指明分表键(shardkey),代码示例如下:
    mysql> 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);
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)