В настоящее время я переписываю сценарий push-данных, который извлекает данные из базы данных MSSQL на другом сервере и затем вставляет данные в базу данных MySQL. Этот процесс запускается в ночное время и обрабатывается через PHP.INSERT ... ON DUPLICATE KEY UPDATE vs TRUNCATE/INSERT
Оригинальный сценарий TRUNCATE
s таблицы и повторные вставки всех данных в ночное время. Некоторые из таблиц имеют первичные уникальные ключи, которые поступают из базы данных MSSQL. В некоторых таблицах нет.
Я рассматриваю возможность добавления общих первичных ключей к таблицам MySQL, которые в настоящее время не имеют их, поэтому я могу сделать INSERT ... ON DUPLICATE KEY UPDATE
вместо опорожнения таблиц и повторной установки данных каждую ночь. Первичные ключи будут использоваться только по этой причине.
Будет ли процесс более быстрым/менее ресурсоемким, если бы я сделал INSERT ... ON DUPLICATE KEY UPDATE
по сравнению с TRUNCATE
, а затем INSERT
как скрипт в настоящее время? Стоит ли хлопотать о создании общих первичных ключей на таблицах, которые в настоящее время не имеют их только для того, чтобы сделать INSERT ... ON DUPLICATE KEY UPDATE
? Я ищу наилучшую производительность из этого скрипта.