数据库归档

类似于日志之类的数据表,只会用到最新一段时间的数据,随着时间累积,会影响到该表的性能与容量瓶颈,但是又不舍得删除这里历史数据,这时候,可以以备份的形式将这些历史数据归档起来。也即是备份到另一张表或是导出存到磁盘等。
归档方式:

  1. 采用sql语句
    首先创建一张新表与旧表一模一样,如:
    create table log_bak like log;
    
    接着需要归档的数据导入新表并删除旧表中的数据,如:
    insert into log_bak select * from log where created_at < NOW() - INTERVAL 90 DAY;
    delete from log  where created_at < NOW() - INTERVAL 90 DAY;
    
    具体怎么执行上述命令,可以通过存储过程的方式,也可以写个crontab任务,也可以在项目中写定时任务,等等,不一而足。
    需要注意的是,在插入数据到备份表的时候,可能会因为数据量过大而导致执行失败,这时候就需要控制单次执行的数据量,如果是报“The total number of locks exceeds the lock table size.”,则需要将innodb_buffer_pool_size值进行调优,等等。
  2. 使用第三方工具,如:pt-archiver
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值