业务需求每小时把日志表进行归档。
采用的的办法是用存储过程实现对数据表名进行交换,可以接受在交换表名时丢失少量数据。
但目前LOG表写入比较频繁。实际过程中发现经常性的执行完第一行,第二行没有执行,这导致数据库中的LOG表找不到前台写失败。大家有没有好的办法。查了一下事务但发现alter table语句是直接提交的,事务未必能起到作用还有可能造成死锁,所以没敢写成事务提交。
CREATE  PROCEDURE `swap`()
BEGIN
alter table log rename to log_t1;
alter table `log_t` rename to `log`;
alter table `log_t1` rename to `log_t`;
END