Mysql
 sql >> база данни >  >> RDS >> Mysql

Прехвърляне на данни от SQL Server към MySQL

Използвах моста jdbc-odbc в Java, за да направя точно това в миналото, но производителността през ODBC не е страхотна. Бих предложил да погледнете нещо като http://jtds.sourceforge.net/ който е чист Java драйвер, който можете да пуснете в прост Groovy скрипт като следния:

import groovy.sql.Sql
sql = Sql.newInstance( 'jdbc:jtds:sqlserver://serverName/dbName-CLASS;domain=domainName',     
'username', 'password', 'net.sourceforge.jtds.jdbc.Driver' )
sql.eachRow( 'select * from tableName' ) { 
  println "$it.id -- ${it.firstName} --" 
  // probably write to mysql connection here or write to file, compress, transfer, load
}

Следните числа за ефективност ви дават представа за това как може да се представи:http://jtds.sourceforge.net /benchTest.html

Може да откриете някои предимства на производителността при изхвърляне на данни във формат mysql dumpfile и използване на mysql loaddata вместо писане ред по ред. MySQL има някои значителни подобрения в производителността за големи набори от данни, ако зареждате infile и правите неща като атомни размяна на таблици.

Ние използваме нещо подобно за бързо зареждане на големи файлове с данни в mysql от една система в друга, напр. Това е най-бързият механизъм за зареждане на данни в mysql. Но в реално време ред по ред може да е прост цикъл за изпълнение в groovy + някаква таблица, за да следите кой ред е бил преместен.

mysql> select * from table into outfile 'tablename.dat';  

shell> myisamchk --keys-used=0 -rq '/data/mysql/schema_name/tablename'

mysql> load data infile 'tablename.dat' into table tablename;

shell> myisamchk -rq /data/mysql/schema_name/tablename

mysql> flush tables;
mysql> exit;

shell> rm tablename.dat


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете конкретен запис в случай на дублиран запис

  2. Извикване на асинхронен метод на PHP в рамката Yii

  3. Булеви полета в MySQL Django модели?

  4. Създайте символна връзка за библиотеката libmysqlclient.18.dylib

  5. Оптимизирайте заявката на django, за да издърпате връзка между външен ключ и django-tagit