注册

DM8数据库 Update、Delete写入性巨慢 怎样优化?

哈库纳 2023/08/30 1357 8

你好,我们的产品是 CloudCanal【www.clougence。com】 专注在数据同步的工具,近期我们有计划在支持达梦数据库。

遇到一点小问题 Update、Delete 始终性能上不去,对端达梦数据库 CPU 一直很高

  • 数据库:Docker 版本 达梦8 数据库
  • 机器:阿里云 ECS 8vCPU 和 12vCPU(只跑达梦)
  • 技术栈:标准 JDBC 方式
  • 达梦数据库中表数据量不多只有几十万条
  • 测试的表 1张,表结构如下
CREATE TABLE `huasheng` ( `id` bigint NOT NULL, `name` varchar(50) DEFAULT NULL, `age` int DEFAULT NULL, `sex` char(5) DEFAULT NULL, `address` varchar(100) DEFAULT NULL, `textid` text, `score` decimal(20,2) DEFAULT NULL, `dateid` date DEFAULT NULL, `datatimeid` datetime DEFAULT NULL, `strid` varchar(30) DEFAULT NULL, `title` varchar(50) DEFAULT NULL, `title1` varchar(50) DEFAULT NULL, `title2` varchar(50) DEFAULT NULL, `timeid` time DEFAULT NULL, PRIMARY KEY (`id`) )

测试步骤

  1. 源端使用 MySQL 对该表随机进行 Insert、Update、Delete 操作
  2. 使用我们的软件产品创建 同步链路同步这些变更
  3. 观测数据写入性能

技术细节

  1. 数据写入使用标准的 Insert、Update、Delete 语句,where 条件列只包含主键
  2. 最多 32 线程执行数据写入

下面这张图红框部分是我们软件中记录一条语句的写入耗时(单位毫秒)发现 Update、Delete 性能巨慢

image.png

测试细节

  • 最初使用的是 8vCPU 32G 内存,数据库写入的时 CPU 100%,写入速率 60条/s
  • 后来升级到 12vCPU,24G 内存,数据库写入的时 CPU 75~80%,写入速率 80条/s
  • ECS 数据库 CPU 使用情况
    image.png

疑问

请问 达梦数据库的单表 随机混合负载写入,有什么优化方式么?

回答 0
暂无回答
扫一扫
联系客服