Я пытаюсь синхронизировать 2 набора таблиц, каждый набор (примерно) идентичен по структуре, один находится в базе данных Microsoft SQL Server и другой находится в базе данных MySQL, MSSQL имеет связанный сервер с базой данных MySQL LNK-SVRINSERT ... ON DUPLICATE KEY UPDATE быстрее DELETE/INSERT все записи
Мне интересно, что быстрее, удаляя каждую запись в одной таблице и вставляя ее снова с помощью запроса INSERT INTO ... SELECT FROM
или используйте INSERT...ON DUPLICATE KEY UPDATE
, чтобы были созданы новые записи и исправлены нарушения первичного ключа.
Вы приурочили оба метода? – bhs
@bhs еще не было, в прошлом DELETE/INSERT все записи работали нормально, потребовалось всего минуту для даже 100 000+ записей, однако мы начали запускать тесты на производственном сервере (та же настройка), и это чертовски много медленнее , так как есть много таблиц, которые синхронизируются как это, и у меня есть другие сценарии, над которыми мне нужно работать, чтобы ускорить работу из-за увеличения времени, когда я задаю этот вопрос, чтобы узнать, знает ли кто-нибудь, когда я работаю над другими сценариями (там похоже на 20 таблиц, которые будут иметь разные ответы на DUPLICATE KEY UPDATE) –
Просто примечание ... но если источник - это живая БД, есть вероятность случайных ошибок синхронизации из-за изменений данных. Например: сначала копируется 'TableA', затем« ChildOfTableA »копируется через X секунду позже. Между ними новые записи вставляются в 'TableA' и' ChildOfTableA'. Поэтому, когда «ChildofTableA» скопирован, у него есть запись, которая должна FKey для «TableA» и ... boom. – EBarr