【亚伟-苍穹系列】之如何设置单据水平分表原创
金蝶云社区-王亚伟
王亚伟
12人赞赏了该文章 3,377次浏览 未经作者许可,禁止转载编辑于2022年07月31日 09:13:34
summary-icon摘要由AI智能服务提供

本文介绍了苍穹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

数据迁移服务工作线程数

     

    配置效果截图:

xdb配置图.png


第二步、 登录苍穹,进行分片配置

    菜单路径:【系统服务云】-【配置工具】-【水平分表】

            功能:

                1、分片配置:分片配置(配置分片策略)、分片配置模板(配置模板);

                2、日志与性能:分片操作日志、分片指标采集、SQL执行探测器;

                3、分片辅助:离散度计算、数据量统计、分片语句生成器;

苍穹水平分表菜单.png

    以下主要演示分片配置,其他功能可根据实际需要交流沟通

1.png


2.png

2.1.png

2.2.png

2.3.png

      

以上设置好,启用分片之后就ok啦


参考资料:

1、参考视频:分布式数据库、水平分表

2、参考文档:开启分片设置   、 苍穹定制化开发性能优化专题系列(六)-分库分表技术演进与苍穹实践

3、水平分表使用手册:见附件

图标赞 12
12人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!