各种主流SQLServer迁移到MySQL⼯具对⽐我之所以会写这篇对⽐⽂章,是因为公司新产品研发真实经历过这个痛苦过程(传统基于SQL Server开发的C/S产品转为MySQL云产品)。⾸次需要数据转换是测试
环节,当时为了快速验证新研发云产品性能与结果准确性(算法类),所以需⼤量的原始数据,最快的办法就是使⽤⽼产品的真实数据。因为在前期数据转换时主⽤于内部验证,并没有花很多⼼思去处理这个事情,⼀般数据能导过去,不对的地⽅⾃⼰再⼿⼯处理⼀下就好了。后⾯对这个转换⼯具引起了极⼤的重视是正式有⽼客户升级时,因为正式投⼊使⽤就容不得半点错误(当时⾄少有⼏百家客户需要升级新产品),所以数据转移第⼀要求是百分百的准确率,其次是速度要快。现在回想起来,当时要有这么⼀篇对⽐⽂章,那我就不会浪费那么多时间在查、对⽐、验证⼯具和数据维护修正上了,所以真⼼希望通过这篇对⽐⽂章能给⼤家提供⼀些参考或帮助!下⾯进⼊正题:
在部署前期,⾸要任务就是考虑如何快速把基于 SQL Server 数据库的应⽤程序移植到阿⾥云的 MySQL 数据库。由于程序是基于 O/R mapping 编写,并且数据库中没有使⽤存储过程、⽤户函数等数据库功能,因此仅仅需要考虑的是数据库中的数据如何转换到新的 MySQL 数据库中。
通过度娘查,到如下四种可以使⽤的⼯具,并且每⼀种⼯具都有⼤量的⽤户,还有不少⽤户在⾃已的博客中写下了图⽂使⽤经验,这四种⼯具分别是:
● SQLyog()
● Navicat Premium()
● Mss2sql()
● DB2DB()
由于公司需要处理的是业务数据库,因此必须保证数据转换的准确率(不允许丢失数据,数据库字段、索引完整),并且需要保证数据库迁移后能⽴即使⽤。因此在实施数据迁移前,对这⼏种 SQLServer 到 MySQL 的迁移⼯具进⾏⼀个全⾯测试。下⾯我们将基于以下需求为前提进⾏测试:
●软件易⽤性
●处理速度和内存占⽤
●数据完整性
●试⽤版限制
●其它功能
⼀、测试⽤的源数据库和系统
⽤于测试的源数据库名为 MesoftReportCenter。由于其中⼀个测试⼯具试⽤版限制只能处理两张数据表的原因,因此我们只选取了记录数最多的两张数据表:HISOPChargeIntermediateResult 和 HISOPChargeItemIntermediateResult。两张数据表合计的记录数约为 328万,数据库不算⼤,但针对本次进⾏测试也基本上⾜够了。
SQLServer 服务器和 MySQL 服务器分别运⾏在两台独⽴的虚拟机系统中,⽽所有的待测试程序都运⾏在 MySQL 所在的服务器上⾯。其中:
SQLServer 服务配置:
●操作系统:Windows XP
●内 存:2GB
● 100MB 电信光纤
MySQL 服务配置:
●操作系统:Windows XP
●内 存:1GB
● 100MB 电信光纤
同时为了测试的公平性,除 Mss2SQL 外,所有软件都是直接从官⽹下载最新的版本。 Mss2SQL 由于试⽤版的限制原因没有参与测试,⽽使⽤了⽹上唯⼀能到的5.3 破解版进⾏测试。
⼆、软件易⽤性评测
软件易⽤性主要是指软件在导⼊前的配置是否容易。由于很多软件设计是⾯向程序员⽽⾮⼀般的数据库管理⼈员、甚⾄是普通的应⽤程序实施⼈员,⽽这⼀类⼈员很多时候并没有数据源配置经验。因为⼀些使⽤ ODBC 或者 ADO 进⾏配置的程序往往会让这类⽤户造成困扰(主要是不知道应该选择什么类型的数据库驱动程序)。下⾯让我们看看四个⼯具的设计界⾯:sql server手机版下载
1、SQLyog
SQLyog 使⽤的是古⽼的 ODBC 连接,但对于新⼀代的程序来说,这种⽅式的⾮常的不熟悉并且不容易使⽤,并且必须要求本机安装好相应的数据库的 ODBC 驱动程序(SQL Server ⼀般⾃带好)。
2、Navicat Premium
Navicat Premium 是四个应⽤⼯具中设计最不⼈性化的⼀个:从上图怎么也想像不到要点按那个⼩按钮来添加⼀个新的连接,并且这个连接设置不会保存,每次导⼊时都必须重新设置。 Navicat Premium 使⽤的是⽐ ODBC 稍先进的 ADO 设置⽅式(199X年代的产物),但使⽤上依然是针对⽼
⼀代的程序员。
3、Mss2sql
Mss2sql 是最容易在百度上搜索出来的⼯具,原因之⼀是它出现的时间较早。
Mss2sql 由于是很有针对性的从 SQLServer 迁移到 MySQL,因为界⾯使⽤了操作向导设计,使⽤⾮常容易。同时在设置的过程中,有⾮常多的选项进⾏细节调整,可以感觉到软件经过了相当长⼀段时间的使⽤渐渐完善出来的。
4、DB2DB
DB2DB 由于是由国⼈开发,因此⽆论是界⾯还是提⽰信息,都是全程汉字。另外,由于 DB2DB 在功能上很有针对性,因为界⾯设计⼀⽬了然和易使⽤。和 mss2sql ⼀样, DB2DB 提供了⾮常多的选项供⽤户进⾏选择和设置。
三、处理速度和内存占⽤评测
在本评测前,本⼈的⼀位资深同事曾经从⽹上下载了某款迁移软件,把⼀个⼤约2500万记录数的数据表转送到阿⾥云 MySQL,结果经过了三天三夜(好在其中两天是星期六和星期⽇两个休息⽇)都未能迁移过来。因此这⼀次需要对这四个⼯具的处理速度作⼀个详细的测试。
考虑到从 SQL Server 迁移到 MySQL 会出现两种不同的场景:
●从 SQL Server 迁移到本地 MySQL 进⾏代码测试和修改;
●从 SQL Server 迁移到云端 MySQL 数据库正式上线使⽤;
因此我们的测试也会针对这两个场景分别进⾏评测,测试结果如下(记录数约为 328万):
⼯具名称迁移到本地耗时迁移到云端耗时最⾼CPU占⽤内存占⽤
SQLyog2806秒4438秒08%20MB
Navicat Premium598秒3166秒52%32MB
Mss2sql726秒1915秒30%12MB
DB2DB164秒1282秒34%40MB
注:红⾊字体标识为胜出者。
以下为测试过程中的截图:
1、SQLyog
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论