关于大数据表的拆分

由于数据表的数据量预估会很大,因此开始考虑对表进行拆分,把超过一个月的数据转到历史表,历史表的表结构和当前表一样,以下做法只是一种思路,记录下来和大家分享一下。
数据表称为A表,历史表称为B表
1.创建一个临时表,临时表中只有一个字段就是表A的主键
2.计算表A中超过30天的数据有多少条,count(1)
3.计算数据在转移时需要提交多少次,假设一次提交5000条数据,如果有1万数据,那么就提交两次,如果有1.5万数据,提交三次(三次循环)
4.每次抓取5000条主键id存入临时表(select id from A where time>30 fetch 5000 row only)
5.根据临时表中的id,把表A的数据查出来插入表B(insert into B (select * from A where id in (select id from 临时表)))
6.清空临时表中的数据
7.删除表A中对应的纪录(delete from A where id in (select id from 临时表))

注意:4.5.6.7需要在一个事务中执行,每次循环都有事务控制
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值