У меня большая проблема с использованием полнотекстового поиска в моей базе данных innoDB.
Прежде всего, таблица ns_pages содержит более 2,6 млн записей, с полнотекстовым индексом с 3 ключевыми блоками.
Эта БД работает на Dell R710 с 128 ГБ ОЗУ.
Когда я использую этот запрос, остановка БД работает.
если я проверю запрос, используя webmin, я вижу, что запрос все еще работает до таймаута.
SELECT sh.id,body, 'source', 'page_in_source', 'datepaper', 'folder'
, 'attach_fn', Description,s.ImgFName
FROM ns_pages sh INNER JOIN ns_source s on s.id=sh.source where viewnews=1
AND DATE_ADD(sh.datepaper,INTERVAL s.days_in_advance DAY)
BETWEEN '2017-12-22' AND '2017-12-22'
AND source in (1815,345,1,382,89,14,12,239,108,119,485,490,13,509,2,537,182,193,333,559,1817,111,506,1615,1752,248,33,34,35,357,36,458,131,26,27,32,30,29,31,28,1816)
AND MATCH (body) AGAINST ('"United States of America"' IN BOOLEAN MODE)
order by datepaper, DistributionArea, cadence, Description, page_in_source desc
но простой работает хорошо
SELECT sh.id,body, 'source', 'page_in_source', 'datepaper', 'folder'
, 'attach_fn', Description,s.ImgFName
FROM ns_pages sh INNER JOIN ns_source s on s.id=sh.source where viewnews=1
AND DATE_ADD(sh.datepaper,INTERVAL s.days_in_advance DAY)
BETWEEN '2017-12-22' AND '2017-12-22'
AND source in (1815,345,1,382,89,14,12,239,108,119,485,490,13,509,2,537,182,193,333,559,1817,111,506,1615,1752,248,33,34,35,357,36,458,131,26,27,32,30,29,31,28,1816)
AND MATCH (body) AGAINST ('Jamaica' IN BOOLEAN MODE)
order by datepaper, DistributionArea, cadence, Description, page_in_source desc
Проблема заключается в тексте
MATCH (body) AGAINST ('"United States of America"' IN BOOLEAN MODE)
Термин поиска включает Соединенные Штаты Америки в двойных кавычках, а в моем логическом поиске MySQL с использованием FullText Search содержимое рассматривается как один поиск.
Вы удаляете двойные кавычки
MATCH (body) AGAINST ('United States of America' IN BOOLEAN MODE)