本文介绍了苍穹ERP系统针对单数据库存储中单表数据量过大、查询慢等性能问题提供的水平分表功能。该功能通过将不同数据行按规律分布到不同表中来降低单表数据量。详细说明了在MC中开启分片配置和登录苍穹进行分片配置的步骤,并提供了配置项说明及效果截图,最后列出了参考资料。
前言:
实际业务中,ERP系统经过一段时间的运行,部分单据会存在单表数据量过大查询慢等问题,为解决单数据库存储,单表数据量过大、慢查询等性能问题,苍穹提供了水平分表功能;
这里的水平分表指的是单库的水平分表,将表中不同的数据行按照一定的规律分布到不同的表中,通过该方式降低单表数据量,如费用明细表,还款记录表等按照日期维度,每个月建立一张表。
配置步骤:
苍穹水平分表一共分两步实现
第一步、MC中开启分片配置
菜单路径:【基础数据维护】-【环境公共配置项】-【标准公共配置-配置-通用配置-prop】
开启分片配置项:
a) 须启用XDB,否则分片配置不生效,数据迁移服务也不会执行。
b) 在配置管理中设置xdb.enable=true。
c) 若是本地开发环境,可以自定义参数:System.setProperty("xdb.enable","true");
d) 通常只需要配置xdb.enable。
e) XDB的配置,均通过系统环境属性设置,配置项如下表:
配置项 | 默认值 | 说明 |
xdb.enable | false | 是否启用XDB |
xdb.log.sharding | true | 记录分片后的SQL (SQL中有分片表) |
xdb.log.nosharding | false | 记录不分片的SQL (SQL中无分片表) |
xdb.log.original | false | 记录原始的SQL (不管SQL中是否有分片表) |
xdb.log.stat | false | 通过日志输出XDB执行SQL的统计信息。 统计信息包括所有过程的内容,如执行时间、并发数、分片命中情况、集合合并过程等信息。 用作在开发环境下跟踪分析性能。 |
xdb.executor.parallel_query_size | CPU逻辑处理器个数*4 | XDB并行查询数。 事务内,之前对查询的相关表有写操作时,XDB不会进行并行查询,以确保数据的一致性。 |
xdb.devmode | false | 开发者模式。 启用后,数据迁移时将不删除源表。 |
xdb.shardingmoving.enable | true | 是否启动数据迁移服务。 多用于开发环境,关闭本节点的数据迁移服务。 |
xdb.shardingmoving.threads | 4 | 数据迁移服务工作线程数 |
配置效果截图:
第二步、 登录苍穹,进行分片配置
菜单路径:【系统服务云】-【配置工具】-【水平分表】
功能:
1、分片配置:分片配置(配置分片策略)、分片配置模板(配置模板);
2、日志与性能:分片操作日志、分片指标采集、SQL执行探测器;
3、分片辅助:离散度计算、数据量统计、分片语句生成器;
以下主要演示分片配置,其他功能可根据实际需要交流沟通
以上设置好,启用分片之后就ok啦
参考资料:
1、参考视频:分布式数据库、水平分表
2、参考文档:开启分片设置 、 苍穹定制化开发性能优化专题系列(六)-分库分表技术演进与苍穹实践
3、水平分表使用手册:见附件
水平分表使用手册.pdf(2.01MB)
推荐阅读