由于作业中不同的参数设置会极大的影响运行耗时与资源消耗,而此报告的参数设置还有其他优化空间,估测试结果仅供参考。
测试环境
- Centos7(32G 内存,8 核 CPU)
- MySQL8.2.0
- Kettle9.2
场景一
测试场景
一千万数据从 A 机器的 MySQL 库抽取到 B 机器的 MySQL 库中。
测试数据
A 机 MySQL
- 数据条数:一千万
- 单表大小:652 MB
CREATE TABLE `users` (
`id` int NOT NULL,
`name` varchar(100) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`age` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
B 机 MySQL
- 数据条数:一千万
- 单表大小:652 MB
CREATE TABLE `users` (
`id` int NOT NULL,
`name` varchar(100) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`age` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
测试结果
运行耗时
总耗时 6 分 11 秒。
资源消耗
内存占用 5.8g,CPU 占用 1 核的百分之 61.5。
场景二
测试场景
一千万数据从 A 机器的 Excel 文件中抽取后写入 A 机器的 MySQL 数据库。
测试数据
Excel
- 数据条数:一千万
- 文件大小:239 MB
MySQL
- 数据条数:一千万
- 单表大小:652 MB
CREATE TABLE `users` (
`id` int NOT NULL,
`name` varchar(100) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`age` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
测试结果
运行耗时
总耗时 7 分钟。
资源消耗
占用 5.8g 内存,CPU 不到 1 核的百分之 80。