推荐使用:免费中小企业ERP软件(免费下载,像Excel一样极速上手,可灵活自定义的企业管理软件)
问题
1.随着企业管理软件中ERP系统业务量的增长,ERP系统数据库数据量也越来越大,数据库压力越来越大,影响了对外部系统的响应性能,如价格中心、确认管理等。
2.根据业务人员的要求,产品工程师需要系统在一年内(当前日期前365天)查询数据。但是,为了最大限度地减少数据库中单个表的存储空间,存档后只能查询90天的数据。
方法
1.应用代码:的改进
(1)压缩合并非控制头寸的批量(当前查询的是金融类)。对于具有相同属性的资源(如资源id、供应商、成本价、损失期、结算时间等)。)为同一批次,今后只增加或减少批次数量,不再增加批次记录[朱钢——已上线];
(2)减少对数据库的访问。对于数据量大且不常修改的表,如库存批适用类别表,缓存用于有效数据。它的关键字是:key=STK _珠三角_ CLS _ RDS _ * * * * * * *(* * *)是批标识,而该值是表记录数组[表记录】。今后,如果需要查询批次的适用类别,可以先查看缓存,这样就减少了对[好又多BIN —— 已上线的访问压力
2.执行数据库转换:
(1)归档数据,归档后删除主库中已归档的数据,减少数据库[朱岗岗—— 已上线单个表的存储空间];
(2)拆分数据库,将数据切分从单机存储改为分布式存储,是目前互联网行业解决海量数据存储的杀手锏,也是本文分享的重点。
问题
什么是数据库切分?
2.您需要实现哪些框架工具?
3.使用哪种工具?
方法
研究:
数据库切分如下:
1.垂直切分:
把数据库想象成一个接一个地由许多“数据块”(表)组成。我们垂直切割这些“数据块”,然后将它们分布在多个数据库主机上。这个切分方法是一个垂直数据切分。以表为单位,不同的表被分配给不同的数据库或主机。
2.水平切分:
简单层切分主要是根据某个字段的某个规则,将一个访问极其简单的表分配给多个表,每个表包含一部分数据。根据行为单元中的特定条件,同一表中的数据被划分到不同的数据库或主机中。
3.接头切分
以上两种方法切分结合使用。
从系统的程序架构级别来看,切分逻辑可以在几个级别上实现:
DAO层
ORM框架层
JDBC API层
DAO和JDBC之间的Spring数据访问封装层(各种Spring的模板)
切分应用服务器和数据库之间的代理服务器等。
对于这些数据切分,选择并扩展了在DAO和JDBC之间的Spring数据访问封装层中的Cobar-Client。下图是阿里巴巴官方中提供的Cobar客户端现有架构的鸟瞰图,可以从图中获得直观的图像。
选择使用java中间件cobar-client主要基于以下考虑:
(1)cobar客户端公司已经在使用基于阿里巴巴的框架扩展cobar客户端;
(2)cobar-client是一个轻量级应用程序。基于mybatis和spring,易于扩展和维护。
(3)使用数据库代理服务器,我公司没有在实战中实施。代码开发和扩展维护的技术门槛相对较高。如果你想自己维护它,至少你需要非常熟悉IO和多线程。
(4)数据库代理服务器的代理需要支持各种mysql语法,而这个需求只需要支持DML语言。
(5)不需要申请服务器资源(为了实现代理服务器本身的高可用性,需要多个服务器,其他软件需要合并,部署研究和学习成本相对较高);
(6)此外,cobar客户端可以精确地指定某个sql是否被支持切分,进一步降低开发和测试成本。
(7)不要使用分布式数据库,因为没有找到合适的开源和稳定的分布式数据库。此外,如果使用分布式数据库,可能会对现有的系统架构产生很大的影响,并且风险是不可控制的。