Время от времени мы получаем особенно длительный полнотекстовый запрос в MySQL. Запрос будет выполняться очень долго, в настоящее время я вижу запрос, который выполняется в течение 50 000 секунд (и продолжает работать). Использование Kill или Kill Query в запросе, похоже, ничего не дает. Кроме того, команда Timeout на стороне клиента составляет 30 секунд, поэтому клиент уже вышел из строя и ушел, но сервер просто продолжает выполнять запрос, используя довольно много ресурсов. В прошлом нам приходилось перезапускать службу MySQL, чтобы такие запросы перестали выполняться. Есть ли другой способ остановить эти запросы. Мы принимаем меры для обеспечения того, чтобы запросы не выполнялись в первую очередь, но они по-прежнему запускаются время от времени, и это большая проблема. Главным образом потому, что во время выполнения запросов мы не можем выполнять обновления таблицы.
Примером длинного запроса может быть что-то вроде:
SELECT id,Title From Articles WHERE MATCH(ArticleText) AGAINST('+Nintendo*HD*Wii*' IN BOOLEAN MODE)
Это выполняется особенно долго из-за * в середине строки поиска, а также в конце строки.