RDS存储问题:通过RDS MySQL删除前一天的数据并每天插入新记录

问题描述 投票:0回答:1

我对执行重大删除后回收存储空间有疑问。 删除的记录不会释放存储空间。我们是否必须每次都执行

optimize table tablename
查询来释放已删除的存储空间?有什么配置可以帮助我们释放存储空间吗?

我们正在使用 InnoDB 表

优化查询:https://dev.mysql.com/doc/refman/5.7/en/optimize-table.html

sql mysql optimization amazon-rds
1个回答
0
投票

这是

PARTITIONing
的案例。

  • PARTITION BY RANGE(TO_DAYS(...))
  • 使用数据的日期时间的分区键;
  • 调整索引。
  • 设置每小时
    DROP PARTITION
    REORGANIZE PARTITION
    的脚本。

注意:我建议每小时分区,这样表中一次最多可以保存 25 小时的数据。

更多讨论:分区

DELETE
在桌子上留下可用空间;空闲空间将被后续
INSERTs
重用。如果您坚持使用非分区方法,我建议您有一个连续运行的任务,重复执行

DELETE ... 
    WHERE .. < NOW() - 24 HOUR
    LIMIT 1000`

在该键上有一个索引。更多:大删除如果您需要扫描

PRIMARY KEY
而不是使用特殊索引,它还展示了一种技术。

© www.soinside.com 2019 - 2024. All rights reserved.