【发布时间】:2025-12-23 03:30:11
【问题描述】:
在我的 innoDB 数据库中使用全文搜索时遇到了一个大问题。
首先,ns_pages 表有超过 2.6m 的记录,全文索引和 3 个 keyblock。
此数据库在具有 128GB 内存的戴尔 R710 上运行。
当我使用此查询时,数据库停止工作。
如果我使用 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
【问题讨论】:
-
请提供解释计划
-
添加到原帖
标签: mysql full-text-search innodb fulltext-index