功能描述
BATCH 语句将大事务拆分成若干个小事务,整个流程不保证事务特性,但拆分的小事务需要保证事务特性。目前
BATCH 语句支持 DELETE。注意事项
目前只支持单表删除,不能嵌套在多语句事务中,
batch_size不为0。删除语句执行时需先找到表对应的 RG Leader 的 SQLEngine,再通过 mysql_client 连接上去执行
DELETE 语句,避免过多 RPC 带来的性能损耗。语法
BATCH LIMIT batch_size delete_stmt
参数说明
参数 | 是否必选 | 说明 |
LIMIT batch_size | 必选 | 控制事务拆分的粒度,设置非事务批量删除每批的大小。 |
delete_stmt | 必选 | 删除语句。 |
示例
如下所示,删除的数据为10000条,
batch_size为2000,则在删除数据时每2000条进行一次事务提交,即一个小事务包含2000条删除数据。BATCH LIMIT 2000 DELETE FROM sbtest1 WHERE id > 1000