Тайм-аут оператора MySQL UPDATE - PullRequest
1 голос
/ 13 октября 2010

Сбой следующего очень простого фрагмента SQL:

UPDATE smalltable,bigtable
SET smalltable.ssn=bigtable.ssn
WHERE smalltable.last = bigtable.last && smalltable.first = bigtable.first;

bigtable имеет 16 000 записей - на самом деле не так уж много для SQL.smalltable имеет около 300. По какой-то причине этот оператор истекает (> 30 секунд).Зачем?Это кажется очень простым, и с данными не сложно работать: не много повторов, короткие поля (VARCHAR (20)) и т. Д.

Я что-то не так делаю?Я просто пытаюсь обновить записи в smalltable с помощью простого (или, как мне показалось, такого) поиска в bigtable.

Редактировать: Очень возможно, актуально: smalltable это LOCAL INFILE.

1 Ответ

5 голосов
/ 13 октября 2010

У вас есть индексы на:

smalltable.last, bigtable.last, smalltable.first, bigtable.first
...