记录一次工作中的大表优化方案

        现项目中,有大概8张左右的日志表,每张表日数据量在50W左右,6个月的数据量高达一亿。且项目中部分业务与日志表关联,致使查询效率低下。现有需求,需要对这些日志表进行优化。思路如下:

一· 对日志表超出6个月的数据进行备份,仅保留6个月内的数据。

    1. 实现思路:

        ① 编写定时任务定期创建大表的历史表。

        ② 使用expdp命令定期先导出大表6个月外的数据,对其进行备份。

        ③ 备份成功后,编写定时任务去自动将大表6个月外的数据迁移到历史表中。

二· 对大表进行分区

    1. 实现思路:

        ① 导出生产大表的表结构,根据生产表结构,将普通表转为按月分区表。

        ② 编写定时任务,定期创建新分区。

    2. 可能会遇到的问题:

        ① 由于日志表都有日期,按日期按月分区,若日志数据被篡改,插入数据不在当前分区范围中,则会插入异常。

        ② 暂不编写定期删除分区的定时任务。原因:(1) 即使存在大量分区表,只要数据及时被备份清理,空的分区对性能的影响极小,只有达到上千级别可能会影响,可忽略。(2) 若备份功能异常,则删除有数据的分区时会导致全局索引失效。

      

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值