您现在的位置是:亿华云 > 应用开发
我们为什么在MySQL中几乎不使用分区表
亿华云2025-10-09 03:25:02【应用开发】4人已围观
简介在Oracle中,使用分区表是一种很自然的事情,数据库容量基本都是500G起,大小在5T以上都是很常见的。但是在MySQL的使用中,我们几乎不使用分区表,今天有同学在群里一起沟通,我就按照我的理解做了
在Oracle中,中乎使用分区表是不使一种很自然的事情,数据库容量基本都是用分500G起,大小在5T以上都是区表很常见的。
但是中乎在MySQL的使用中,我们几乎不使用分区表,不使今天有同学在群里一起沟通,用分我就按照我的区表理解做了梳理。整体来说从功能上来说,中乎Oracle有的不使大部分功能在MySQL分区表中基本存在,包括一些分区的用分细粒度管理。
所以如果单纯从功能入手,区表确实难以找到很直接的中乎理由来拒绝分区表。
我觉得主要是不使使用模式的差异,我们不使用的用分主要原因是避免单库存储过大,而且分区表变更相对会比较麻烦,在MySQL侧,我们的目标是云南idc服务商让数据库更小巧轻量一些,可能更偏TP一些,我们目前是排除了分区表的设计,而且也明确写进了开发规范,如果按照数据类型来说,状态表,流水表和配置表,这三种类型中也就只有流水日志表的数据都是建议使用周期表的形式进行存储,方便随时扩展,表结构变更也方便T+1的变更模式
在这个基础上,可以把这个问题转化为,是使用分区表还是单表来存储数据?这个问题我们调研过,目前来看,查询复杂度的一些变更业务基本都能够接受,而且风险覆盖度要小一些(程序侧也不能完全保证SQL一定好使不走全表扫描)目前我们实现周期表(日表,月表,周表,年表,季表)中的日表和月表的自动扩展,已经接管了300多个周期表的自动管理。
此外,免费信息发布网数据流转体系中,分区表的模式对于数仓体系也不够友好,如果ETL直接抽数据,基本需要在过滤条件的部分做一些取舍,影响还是相对很大的。
问题1:为啥Oracle分区表用的很常见 MySQL却不推荐呢 挺疑问的。
因为是两种不同的数据库,拿MySQL当Oracle用,会有很多不如意的地方。Oracle单库过T很正常,TP+AP很强,原生的HTAP的支持,MySQL的AP相对要弱很多,单库过T是不建议,我们的容量规划目前是按照300G的容量规格设计的,基本上从设计层面能够做到冷热数据分离和规避数据过度增长。源码下载
问题2:日表和月表什么关系呢?月表是日表的联合查询还是数据镜像?
日表和月表目前没有直接的关联,就是按照业务维度包括数据量进行综合评估选定的,如果有的业务数据量不大,范围查询多一些,就推荐月表,如果数据量抖动大,数据量大,而且还会有变更操作,一般建议是日表,我们日表和月表的比例差不多是20:1
问题3:这些都是前期系统架构设计时规划好的?有没有后期改造的案例?如何去推动研发难度会不会很大
这个我认为不算前期规划,算是迭代改进,我们提供的一个福利就是改造成日表后,日表的扩展和数据清理都是我们来干了,业务很happy,而在以前,可能还会有手工维护Excel列表或者一些元数据配置的模式来记录不同业务的表的扩展情况,有种手工记账的感觉,如果DBA或者业务同学忘记了,基本碰上就是一次数据故障。
所以我们写了自动管理的服务,包括单机和集群中间件的周期表管理,基本上我们就不用手工干预了。
对于业务来说很大的痛点就是表如何扩展(有时候忘记了后果挺严重的),数据清理(如果不拆表,按照delete模式很痛苦)和表变更(T+1的模式对于业务来说是可用接受的,对于DBA完全可控)
小结:
我们不使用分区表,一方面是业务所需,另一方面我们提供了周期表解决了业务痛点,所以也算是一拍即合的一种策略。
本文转载自微信公众号「杨建荣的学习笔记 」,可以通过以下二维码关注。转载本文请联系杨建荣的学习笔记公众号。
很赞哦!(3558)
相关文章
- 审核通过的域名将显示在域名竞拍页面,并进入正式拍卖期,买家可以在拍卖周期内出价,加价幅度与拍卖保证金说明,点此查看。
- 给卷积神经网络“修理工”的一份“说明书”
- 如何把复杂单体应用快速迁移到微服务
- 俗话:学好正则表达式,走遍天下都没事!最详细的正则入门教程!
- 为啥修改dns服务器?dns服务器与域名有何联系?
- 进程内缓存,究竟怎么玩?
- AR属不属于人工智能?看完本文你就懂了
- 怎样才能快速掌握一门编程语言?
- 4、企业无形资产:通用网站已成为企业网络知识产权的重要组成部分,属于企业的无形资产,也有助于提升企业的品牌形象和技术领先形象。它是企业品牌资产不可或缺的一部分。
- 我用Python分析了4W场比赛,2018世界杯冠军竟然是……
热门文章
站长推荐
一下域名,看有没有显示出你所解析的IP,如果有,就说明解析是生效的;如果没有,就说明解析是不生效的。
Keras vs PyTorch:谁是「第一」深度学习框架?
编程语言发明者们,结局都不太好,到底谁的错?
Java 10最重要的5个新特性!
域名资源有限,好域名更是有限,但机会随时都有,这取决于我们能否抓住机会。一般观点认为,国内域名注册太深,建议优先考虑外国注册人。外国注册人相对诚实,但价格差别很大,从几美元到几十美元不等。域名投资者应抓住机遇,尽早注册国外域名。
程序员的这些“黑话”一定要懂,不然就得交“智商税”了
无需深度学习框架,如何从零开始用Python构建神经网络
【教程】终于有人把Java内存模型说清楚了!