清理回收站
频繁删除数据 库对象并重建,会在回收站产生大量的数据,您可以通过清理回收站的方式来清理这些数据。
清理回收站主要有手动和自动两种方式。
手动清理回收站
您可以通过 PURGE 命令手动清理回收站。
注意事项
-
Purge 操作会删除对象和从属于该对象的对象(即 Database > Table > Index)。例如,Purge 数据库会删除数据库和从属于该数据库的表和表索引。
-
当一个对象的上层对象被 Purge,那么当前回收站中关联的下一层对象也会被 Purge。
-
执行 Purge 操作前,建议您通过回收站对待删除的对象进行确认。执行 Purge 操作后,在 seekdb 的回收站中将再也查询不到对象的信息,真实数据也最终会被作为垃圾回收。
操作步骤
-
管理员
root登录到 seekdb。连接示例如下,连接数据库时请以实际环境为准。
mysql -h127.0.0.1 -uroot -P2881 -
执行
SHOW RECYCLEBIN语句,获取回收站中对象的名称。SHOW RECYCLEBIN;+--------------------------------+---------------+----------+----------------------------+
| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME |
+--------------------------------+---------------+----------+----------------------------+
| __recycle_$_1_1765784426825016 | test_db | DATABASE | 2025-12-15 15:40:26.825340 |
| __recycle_$_1_1765785669490408 | tbl1 | TABLE | 2025-12-15 16:01:09.491488 |
+--------------------------------+---------------+----------+----------------------------+
1 row in set (0.003 sec) -
根据业务需要,选择合适的场景,清理回收站。
-
从回收站中物理清理指定的数据库
PURGE DATABASE object_name;object_name表示该 Schema 对象在回收站中的名称。不支持使用原始名称。示例如下:
PURGE DATABASE __recycle_$_1_1765784426825016; -
从回收站中物理清理指定的表
PURGE TABLE object_name;object_name表示该 Schema 对象在回收站中的名称,也可以使用原始名称。使用原始名称时,如果回收站中当前有相同的多个原始名称,则清除的是最早进入回收站中的表。示例如下:
PURGE TABLE __recycle_$_1_1765785669490408; -
从回收站中物理清理指定的索引表
PURGE INDEX object_name;object_name表示该 Schema 对象在回收站中的名称。不支持使用原始名称。示例如下:
PURGE INDEX __recycle_$_100017_1673426335319344; -
将所有对象从回收站中彻底清除
PURGE RECYCLEBIN;
-
-
命令执行成功后,可以再次执行
SHOW RECYCLEBIN语句,确认回收站中的对象是否成功清理。SHOW RECYCLEBIN;