RADON
更新时间:2023-11-06 09:26:47
Radon 是一款自研 SQL 内核,具备以下 SQL 语法形式和使用规范。
RADON ATTACH
-
附加一个 MySQL 到 RadonDB 的 backend。
-
在 backend 中类型为
attach
.
语法
RADON ATTACH($address,$user,$password)
示例
mysql> radon attach('127.0.0.1:3306','root','123456');
Query OK, 0 rows affected (0.94 sec)
RADON ATTACHLIST
列出类型为 attach
的 backend。
示例
mysql> radon attachlist;
+----------------+----------------+------+
| Name | Address | User |
+----------------+----------------+------+
| 127.0.0.1:3306 | 127.0.0.1:3306 | root |
+----------------+----------------+------+
1 row in set (0.00 sec)
RADON DETACH
将一个类型为 attach
的 backend 从 RadonDB 中剥离。
语法
RADON DETACH($address)
示例
mysql> radon detach('127.0.0.1:3306');
Query OK, 0 rows affected (0.22 sec)
mysql> radon attachlist;
Empty set (0.00 sec)
RADON RESHARD
-
将数据从一个 single 表转移到另一个 hash 分区表。
-
执行后立即返回,迁移将在后台运行。
-
single 表必须带有主键。
语法
RADON RESHARD tbl_name TO new_tbl_name
示例
mysql> show tables;
Empty set (0.10 sec)
mysql> create table t1(a int primary key, b varchar(255)) single;
Query OK, 0 rows affected (0.13 sec)
mysql> insert into t1(a,b) values(1,'a'),(2,'b');
Query OK, 2 rows affected (0.10 sec)
mysql> radon reshard t1 to new_tb;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+---------------+
| Tables_in_zzq |
+---------------+
| t1 |
| new_tb |
+---------------+
2 rows in set (0.10 sec)
mysql> show create table new_tb;
+--------+----------------------------------------------------------------+
| Table | Create Table |
+--------+----------------------------------------------------------------+
| new_tb | CREATE TABLE `new_tb` (
`a` int(11) NOT NULL,
`b` varchar(255) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY HASH(a) */ |
+--------+----------------------------------------------------------------+
1 row in set (0.05 sec)
mysql> select * from new_tb;
+---+------+
| a | b |
+---+------+
| 1 | a |
| 2 | b |
+---+------+
2 rows in set (1.09 sec)
RADON CLEANUP
用于数据重分布之后,旧数据的清理。
示例
mysql> radon cleanup;
Empty set (0.00 sec)
RADON REBALANCE
这条指令旨在让节点之间的数据重新均衡分布,每次从一个后端节点只迁移一张分区表到另一个后端节点。可重复执行,直至数据分布均衡。
-
当指令执行时,客户端会阻塞;
-
若执行
ctrl+c
或者退出客户端,操作将会在后台继续进行。
示例
mysql> radon rebalance;
Query OK, 0 rows affected (39.09 sec)