SELECT * FROM logs WHERE create_time >= '2023-01-01';
-- 删除旧表并重命名新表
DROP TABLE logs;
RENAME TABLE logs_new TO logs;
复制代码
优点:
制止了大规模的删除操纵,淘汰了锁表时间和日记。
缺点:
必要额外的磁盘空间来存放新表数据。
在业务量大的环境下,大概必要举行额外的锁机制控制。
三、性能优化发起
制止在业务高峰期举行大规模删除,可以选择在夜间等业务低峰期执行。
得当设置批量大小。批量删除时,LIMIT 的大小必要根据实际环境调解,不宜过大,防止长时间锁表。
关闭不必要的日记。在某些极度环境下,可以关闭 MySQL 的二进制日记(binlog)来淘汰日记开销,但此操纵有风险,应在充分相识后谨慎利用。
总结
方法适用场景优点缺点LIMIT 分批删除必要简单分批删除逻辑简单,淘汰锁表时间需循环操纵主键范围分批删除有一连主键的表高效,无偏移开销需手动指定范围自定义批量删除存储过程小批量删除自动化操纵必要数据库支持存储过程暂时表替换删除数据量非常大制止锁表,淘汰日记开销必要额外磁盘空间 根据不同的业务场景和需求,选择符合的批量删除方式可以提高 MySQL 的删除效率,淘汰对数据库的影响。渴望本文对各人在 MySQL 的数据清算和维护上有所资助!