前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据的水平分割

数据的水平分割

作者头像
全栈程序员站长
发布2022-07-14 15:34:35
2800
发布2022-07-14 15:34:35
举报

大家好,又见面了,我是全栈君

早前公司有个大系统没有做数据的水平分割,导致兴许的性能优化不能做到最佳,有些功能优化到7s,8s就无法继续了。这个大系统曾经是分21个点部署,然后进行了大集中,仅仅部署了一个点。

1. 在做数据的水平切割之前一定要理解系统的业务。我的系统是MIS,数据能够分为两类:一类是基础数据,一类是业务流程数据。基础数据的理解就是支撑其它业务流转的数据,如部门、人员、权限、资源库等。业务流程数据就是业务单据,如报销流程等。

2. 基础数据是不用做水平的分割的,当然假设是腾讯这样的系统,人员信息很大的还是要做分割的,我们的系统基础数据往往是很小的。业务流程数据要做水平分割。

3. 分割的几种方式,如果有限制有30个局的数据:

a. 分表

长处:安全性更高,MIS系统上线后实施免不了要在后台改数据,万一少写一个条件就悲剧了。对开发者的数据库技能要求低一些,在1千万的表上操作比在一亿的表上操作要简单。

缺点:做查询的时候要组装;在跨局做统计的时候实现会复杂一些。DDL操作要写非常多脚本。

b. 分区

长处:写代码简单;跨局统计方便。

缺点:一定要确保带分区条件,对开发者的数据库操作技能更高。DDL(加字段,改动字段类型或长度,加索引都是DDL)会比較困难,假设表上有操作,DDL都会失败。跟分表的不同,

4. 终于的分割方式

分表:数据量巨大的表,安全性高的表。

单分区:非重点模块,数据量不大,无需做过期化。

复合分区:重点模块,须要做过期化的模块。

不做分区和分表:基础数据。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118018.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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