Использование нескольких операторов обновления из CSV против промежуточной таблицы - PullRequest
1 голос
/ 27 сентября 2011

Я хочу обновить около 10000 записей. Информация об обновлении находится в нескольких файлах CSV. Один из способов обновить мою таблицу -

  1. Создание промежуточной таблицы и обновление моей первичной таблицы из этой таблицы (дополнительная работа)
  2. Использование утилиты CSV to SQL, которая создает несколько операторов UPDATE (это заманчиво)

У меня вопрос: безопасно ли создавать тысячи таких обновлений? Может ли это быть проблематичным и возможно испортить мои данные? Это займет много времени, чтобы завершить действие. Одним из таких онлайн-инструментов является this

UPDATE MyTable SET change_field = 'ABC' WHERE other_field = '1';
UPDATE MyTable SET change_field = 'ABC' WHERE other_field = '2';
UPDATE MyTable SET change_field = 'DEF' WHERE other_field = '3';

1 Ответ

1 голос
/ 27 сентября 2011

Не должно быть проблем с выполнением большого количества таких операторов, если только база данных, которую вы используете, не имеет каких-то ограничений, специально задокументированных.Однако в целом выполнение 10 000 операторов обновления не будет считаться большой нагрузкой для большинства баз данных.Возможно, вы захотите запустить операторы в транзакции, чтобы в случае возникновения проблем вы могли откатить изменения.

Было бы хорошо убедиться, что у other_field есть индекс.В противном случае операторы обновления могут быть медленными, если таблица очень большая (каждое обновление, вероятно, потребует полного сканирования таблицы, если в этом поле нет индекса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...