sql >> Database >  >> RDS >> Mysql

SQL Server naar MySQL-gegevensoverdracht

Ik heb hiervoor in het verleden de jdbc-odbc-brug in Java gebruikt, maar de prestaties via ODBC zijn niet geweldig. Ik raad je aan te kijken naar iets als http://jtds.sourceforge.net/ wat een puur Java-stuurprogramma is dat u in een eenvoudig Groovy-script kunt plaatsen, zoals het volgende:

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
}

De volgende prestatiecijfers geven u een idee van hoe het zou kunnen presteren:http://jtds.sourceforge.net /benchTest.html

Mogelijk vindt u enkele prestatievoordelen bij het dumpen van gegevens naar een mysql-dumpfile-indeling en het gebruik van mysql-laadgegevens in plaats van rij voor rij te schrijven. MySQL heeft een aantal significante prestatieverbeteringen voor grote datasets als je infile's laadt en dingen doet als atomic table swaps.

We gebruiken zoiets om snel grote databestanden in mysql te laden van het ene systeem naar het andere, b.v. Dit is het snelste mechanisme om gegevens in mysql te laden. Maar realtime rij voor rij kan een eenvoudige lus zijn om te doen in groovy + een tabel om bij te houden welke rij is verplaatst.

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. Een Excel-document maken vanuit een Java-programma met behulp van Apache POI

  2. Database-ontwerp met Vertabelo

  3. iOS - Aanbevolen procedures voor kerngegevens en serverdatabasesynchronisatie

  4. Wat is het verschil tussen utf8mb4- en utf8-tekensets in MySQL?