@Kersantinov

Как быстро скопировать таблицу с MSSQL в MySQL?

Коллеги, доброго. Стоит задача - ежедневно выгружать таблицу клиентов на сайт. В таблице несколько сотен записей.
MSSQL - исходный север. MySQL - бд сайта.
Как поступил: прилинковал MySQL сервер с помощью MySQL ODBC, использую последнюю Unicode x64 версию так как mssql 2012 x64.

Формирую таблицу с нужными данными #site_tmp. затем:
Execute ('DELETE FROM `client_list_sync`')at site
INSERT INTO OPENQUERY(site, 'SELECT * FROM site_db.client_list_sync')
select *
from #site_tmp

на 100к записей уходит около часа.
плюс MySQL хостера иногда рвет соединение и передача рвется. А делать это нужно раз в сутки.

Есть идеи как ускорить это дело? За сутки данные сильно меняются и делать UPDATE вместо DELETE & INSERT большого выигрыша во времени не дадут.
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 2
@shagguboy
LOAD DATA INFILE
Ответ написан
Комментировать
vman
@vman
я бы попробовал 2 варианта:

1) сделать наподобие репликации через триггеры на site_db.client_list_sync
при insert|update делать через OPENQUERY DELETE + INSERT
при delete соответственно удалять. Это просто идея, так как я не знаю точно может ли MSSQL такое позволить.

2) выгрузка таблицы в файл, копирование её на сервер и загрузка данных через LOAD DATA

п.2 наверно, все равно придется реализовать, так как гарантировать целостность при подходе из п.1 нельзя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы