我有一个巨大的日志表,它非常忙于保存用户日志。我的任务是安排一个工作,保留最近3天的日志或最后50k行(以较大者为准)并删除其余部分。这可以通过TABLE PARTITION来完成。我不能通过DELETE语句来做到这一点,这是非常昂贵的时间并且要停止插入行。该表包含log_time为VARCHAR。
感谢。
答案 0 :(得分:1)
我可以建议你这个简单的解决方案:
log-2015-01-28
的表,并将2015-01-28
- 2015-01-30
之间的所有日志写入此表2015-01-30
之后创建新表log-2015-01-28-31
并将所有新行写入其中log-2015-01-28
我认为它必须非常快速地工作
答案 1 :(得分:0)
在插入
上创建触发器while触发器检查表的空间。
如果> 50k然后删除最早的行'