MySQL数据迁移测试

ZDNet软件频道 时间:2009-12-03 作者: | 楼方鑫的博客 我要评论()
本文关键词:MySQL 数据迁移
早上在笔记本上测试了一下, 以生成Insert语句的方式, 从Oracle到MySQL迁移数据的速度. 对于MySQL来讲, 是不是绑定变量并不重要, 在MySQL的客户端编程中, 并没有绑定变量的概念, 这是因为MySQL并没有Oracle中类似的共享池, 而是由每个连接进程自行去解释SQL并执行.
 早上在笔记本上测试了一下, 以生成Insert语句的方式, 从Oracle到MySQL迁移数据的速度. 对于MySQL来讲, 是不是绑定变量并不重要, 在MySQL的客户端编程中, 并没有绑定变量的概念, 这是因为MySQL并没有Oracle中类似的共享池, 而是由每个连接进程自行去解释SQL并执行.

    写了一个Windows上的批处理脚本, 用SQLULDR2从Oracle中查询数据, 并生成MySQL的Insert脚本, 用管道输入到MySQL中去执行.

@echo off
echo %TIME%
sqluldr2 ... table=emp_his format=MySQL quote=0x27 escape=0x53 null=null file=- | MySQL test
echo %TIME%

    首先在MyISAM下测试, 先将表改成MyISAM方式存贮.

MySQL> alter table emp_his engine= myisam;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

    进行数据装载测试, 可以看出还是很快的.

D:MySQL-5.0.84-win32bin>runload.bat
7:12:28.10
7:12:41.87

    查一下总共迁移的记录数.

MySQL> select count(*) from emp_his;
+----------+
| count(*) |
+----------+
|  951308 |
+----------+
1 row in set (0.00 sec)

    接下来在Innodb下测试, 将表改成Innodb方式存贮.

MySQL> alter table emp_his engine= innodb;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

    进行数据装载测试, 可以看出比MyISAM要慢不少.

D:MySQL-5.0.84-win32bin>runload.bat
7:09:34.85
7:10:06.15

    查一下总共迁移的记录数.

MySQL> select count(*) from emp_his;
+----------+
| count(*) |
+----------+
|  951308 |
+----------+
1 row in set (2.11 sec)

    在MySQL中, 将同样的表从MyISAM转到Innodb, 需要多少时间?

MySQL> alter table emp_his engine= innodb;
Query OK, 951308 rows affected (16.67 sec)
Records: 951308  Duplicates: 0  Warnings: 0

    对于在笔记本上测试的这个结果, 个人是相当满意的, 测试的表有8个字段, 差不多等于平均数.


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134