我有一个大的数据池,在一个表中具体记录计数是数百万,我需要做的是基于时间戳(字段)我每月不断删除数据;此操作需要以小时为单位。
我必须补充的是,我已经在时间戳字段上做了索引,这个应用程序是在Apache2 + md_wsgi + Django + MySQL堆栈上工作。
有什么聪明而有效的方法来做到这一点吗?
您可以尝试编写一个简单的bash脚本并将其放在cron中,它可以使用普通SQL查询执行所有删除魔术。
mysql --host=localhost --user=user --password=password << END
DELETE FROM `table_name` WHERE `tm_field` >= 'YYYY-MM-dd HH:mm:ss'
END
由于SQL查询与orm相比是轻量级的,因此经常在较小的chuck/中删除数据可以大大帮助您。