У меня очень медленный запрос, который мне нужно время от времени запускать в базе данных MySQL.
Я обнаружил, что попытки обновить запрашиваемую таблицу блокируются до завершения запроса.
Полагаю, это имеет смысл, так как в противном случае результаты запроса могут быть противоречивыми, но для меня это не идеально, поскольку запрос имеет гораздо меньшее значение, чем обновление.
Итак, мой вопрос состоит из двух частей:
Из любопытства, что именно MySQL делает в этой ситуации? Блокирует ли она таблицу на время запроса? Или попытаться заблокировать его перед обновлением?
Есть ли способ, чтобы медленный запрос не блокировался? Я думаю, варианты могут быть:
- Убить запрос при необходимости обновления.
- Запустить запрос к копии таблицы, как это было непосредственно перед обновлением
- Просто позвольте запросу ошибиться.
У кого-нибудь есть мысли по этому поводу?