短时间内同一张表删除好几亿条数据会出现问题吗?

短时间内同一张表删除好几亿条数据会出现问题吗?

正常来说不会出现问题,这是基本功能吧

一次删除好几亿条,属于大事务。
一个看 OB 版本。 2.2, 3.2, 4.2 会有点区别。版本越高,对大事务支持能力越好。
二个 删除几亿条比插入几亿条 对内存的消耗要少很多。

尽管删除数据库是数据库基本能力,但一个事务里删除几亿条,对数据库都不友好, 效率不会太高。建议批量删除提交。这点不管是哪个数据库都是这样的。

2 个赞

可能会存在内存碎片问题

目前是想分多个批次提交的,预测是几个小时内删除,不知道删除后会不会有内存碎片问题

OB 的数据读写模型是 LSM-Tree。增删改 的操作都是 内存中追加写 memtable。 删除后对读可能有些负面影响。只要不是反复的插入和删除,那还好。
转储后会做局部compaction 一下,每天会有合并(major freeze)。一天过后,数据文件上对应的数据就是全新的记录(新的宏块和微块)。

更多原理参考: