Быстрое обновление кросс-таблицы с MySQL - PullRequest
2 голосов
/ 18 июня 2011

Простой вопрос: D. Я знаю, как это сделать, но я должен сделать это быстро.

Какой метод наиболее эффективен по времени?

Сценарий: две таблицы tableA и tableB, обновление tableA.columnA с tableB.columnB, на основе tableA.primarykey = tableB.primarykey.

Проблема: tableA и tableB содержат более 10.000.000 записей каждая.

1 Ответ

8 голосов
/ 18 июня 2011
update TableA as a
    join TableB as b on
        a.PrimaryKey = b.PrimaryKey
set a.ColumnA = b.ColumnB

Обновление 10 миллионов строк не может быть быстрым.Ну ... по крайней мере по сравнению с обновлением одной строки.

Лучшее, что вы можете сделать:

  • индексы при присоединении к полям, но у вас есть это, так как ониполя являются первичными ключами
  • ограничение по условию where, если применимо.Индекс, охватывающий, где условие необходимо, чтобы ускорить его.
...