Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Transfer danych SQL Server do MySQL

W przeszłości używałem do tego mostu jdbc-odbc w Javie, ale wydajność przez ODBC nie jest świetna. Proponuję spojrzeć na coś takiego jak http://jtds.sourceforge.net/ który jest czystym sterownikiem Java, który można wrzucić do prostego skryptu Groovy, takiego jak:

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
}

Poniższe dane dotyczące wydajności dają wyobrażenie, jak może działać:http://jtds.sourceforge.net /test testowy.html

Możesz znaleźć pewne zalety wydajnościowe, zrzucając dane do formatu pliku zrzutu mysql i używając mysql loaddata zamiast pisać wiersz po wierszu. MySQL ma kilka znaczących ulepszeń wydajności dla dużych zestawów danych, jeśli ładujesz pliki infile i robisz takie rzeczy, jak atomowa zamiana tabel.

Używamy czegoś takiego, aby szybko ładować duże pliki danych do mysql z jednego systemu do drugiego, np. Jest to najszybszy mechanizm ładowania danych do mysql. Ale wiersz po wierszu w czasie rzeczywistym może być prostą pętlą do wykonania w groovy + tabela do śledzenia, który wiersz został przeniesiony.

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. Pobieranie wyniku mysql z ostatnich 30 dni

  2. Generuj skrypt aktualizacji tabeli MySQL

  3. Przełączanie awaryjne baz danych dla witryn WordPress

  4. Chcę sprawdzić, czy rekord istnieje, a jeśli nie istnieje, to chcę wstawić ten rekord do bazy danych za pomocą golang

  5. Instrukcja wstawiania i zaznaczania wielu wierszy Mysql z last_insert_id()