У меня есть таблица с использованием поиска Doctrine, которая хорошо работает для запросов с одним словом.Однако я заметил, что когда запрос содержит пробел, страница зависает, и я не могу получить ответ от обновления страницы и т. Д.
Если я открою Activity Monitor на моем Mac или SSH, тогда 'top 'в Ububntu, MySQL работает с процессором до 300% CPU.Мне нужно убить процесс, чтобы снова все нормально заработало.
Это SQL-запросы, сгенерированные Doctrine:
Для запроса одним словом:
SELECT COUNT(*) AS num_results FROM hotel h WHERE h.is_active = '1'
AND h.id IN (SELECT id FROM hotel_index WHERE keyword = 'samui' GROUP
BY id)
Для запроса из нескольких слов с пробелом:
SELECT COUNT(*) AS num_results FROM hotel h WHERE h.is_active = '1'
AND h.id IN (SELECT id FROM hotel_index WHERE id IN (SELECT id FROM
hotel_index WHERE keyword = 'sala') AND id IN (SELECT id FROM
hotel_index WHERE keyword = 'samui') GROUP BY id)
Я пробовал несколько вещей, таких как добавление двойных кавычек вокруг двух слов.
Спасибо