Проблема с запросом на обновление, занимающим более 20 минут (я убиваю его после этого).
Сценарий:
Таблица 1 содержит несколько записей по 300 КБ.
Таблица 2 содержит тот же набор записей (скопированный), но с дополнительным полем, которое должно содержать идентификатор записи, которая соответствует количеству полей и имеет наибольшее значение другой (оценка).Чтобы уточнить, конечным результатом должна быть таблица два, содержащая записи по 300 КБ, каждая из которых имеет идентификатор другой записи с таким же набором базовых свойств, а также самый высокий балл в наборе записей с этими свойствами.
Приведенное ниже завершается через ~ 5 с, когда я копирую только записи 2K вместо полных записей 300k в таблицу 2.
UPDATE vtable2 v1 SET v1.buddy = (
SELECT v2.id FROM vtable1 v2
WHERE
v2.group_id = v1.group_id AND
// 6 more basic comparisons
ORDER BY score DESC LIMIT 1
)
Мне нужно найти друзей для полных записей 300K.Все поля, связанные с объединением и сортировкой, имеют индексы.
Помощь очень ценится.