前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL回收站设计

MySQL回收站设计

作者头像
jeanron100
发布2019-08-23 23:11:14
1.5K0
发布2019-08-23 23:11:14
举报

今天完善了一小部分的周期表的内容,所谓周期表就是我们业务中经常看到的日表,比如表名为test_data,则日表的表名为test_data_20190822,test_data_20190823这样的形式。我们是建议尽可能不要使用分区表,而采用这种日表的形式,从应用层也容易扩展,在数据统计的维度上行会有一些额外的成本。

为什么要提MySQL回收站,主要是基于现在维护的一些数据表的实际情况,最近做了下数据治理的初始工作,在完善了一小部分生命周期管理的工作之后,我惊人的发现我们的几百套数据库环境中每天会有近百表会自动创建,而随着也会有一些表会被删除,而通过明确的需求反应到我们这里的只是个位数,按照这种情况,着实让人倒吸一口冷气,认真分析了一遍大部分环境的情况之后,发现没有想象的那么糟糕,这些变更类的对象基本都是周期表。

而反过来,从安全的角度来说,我们不可避免会出现一些问题,只要是和人相关的,那就肯定会存在潜在问题。所以就可以寄希望于完善的机制和流程来补上这一个环节。

整体来说是下面的关系。

我们在数据库中存在着周期表和普通表,对表的删除操作一定是危险的,所以我们可以在现有的机制中尽可能不要涉及这类操作,而采用一个归档库,或者我叫做回收站更贴切一些。

这个回收站和我们Windows里面的使用方式是类似的,和Oracle中的回收站recyclebin也是一脉相承的。

这里涉及几个问题。

1)对于回收站中文件的清理,应该是周期性和被动型任务并存,即可以周期性扫描,同时按照阈值的方式来进行清理,比如阈值超过80%就应该启动自动的清理扫描任务。

2)如果一个表在同一段时间变更了多次,那么在回收站中就会存在多个表的数据副本,如何去还原是一个需要考虑设计的重要问题。

3)既然drop操作是敏感的,我们不妨就彻底的在线上环境中去除删除操作,取而代之以指定的存储过程等形式来集成对接。

4)从生命周期的角度来看,我们需要对这些敏感操作生成相应的日志信息。

而已回收站的维度来说,我们可以按照空间大小和变更时间进行综合计算得到一个更合适的处理方式。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档