优化mysql全文搜索

我想在我的网页中进行全文搜索。我需要分页进行搜索。我的数据库每张表有50,000+行。我已经改变了我的表,并使其(title,content,date)成为索引。该表始终处于更新状态,仍然有一个id自动增加的列。而最新date的总是在表格的末尾。

date  varchar(10)

title text

content text

但整个查询时间将花费1.5+

seconds。我通过Google搜索了许多文章,有的文章写道,只有限制Index字段字长才能帮助更快地进行搜索。但作为一种text类型,它can

not会像这样改变一定的长度(我尝试过ALTER TABLE table_1 CHANGE标题`titleTEXT(500) CHARACTER

SET utf8 COLLATE utf8_unicode_ci NOT NULL`,不起作用)

date  varchar(10)

title text(500)

content text(1000)

因此,除了Sphinx第三方脚本。如何仅使用sql优化全文搜索?查询代码在这里:

(SELECT 

title,content,date

FROM table_1

WHERE MATCH (title,content,date)

AGAINST ('+$Search' IN BOOLEAN MODE))

UNION

(SELECT

title,content,date

FROM table_2

WHERE MATCH (title,content,date)

AGAINST ('+$Search' IN BOOLEAN MODE))

Order By date DESC

谢谢。

回答:

根据问题的后续注释,您在列上拥有btree索引,而不是全文本索引。

对于针对搜索的匹配(标题,内容),您需要:

CREATE FULLTEXT INDEX index_name ON tbl_name (title,content);

我不确定它是否会接受其中的日期字段(后者可能根本不相关)。

以上是 优化mysql全文搜索 的全部内容, 来源链接: utcz.com/qa/408075.html

回到顶部