优化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
标题`title
TEXT(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