我想用我的网络全文进行搜索。我需要使用分页进行搜索。我的数据库有超过50,000行/每个表。我已经改变了我的表格,并使(title,content,date)
成为索引。表总是更新,仍然有一列id
这是自动增加。而最新的date
总是在表格的最后。优化mysql全文搜索
date varchar(10)
title text
content text
但整个查询时间将花费1.5+ seconds
。我通过谷歌搜索了很多文章,有人写道,只限制Index
字段的字长可以帮助搜索更快。但作为一个text
类型,它can not
改变一定长度一样,(我试图ALTER TABLE table_1 CHANGE
标题标题
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
谢谢。
有没有在表中的数据变化频繁?或者这里有所改变?倒置索引将始终加速全面测试 - 令人难以置信的搜索和静态数据,这是非常容易实施/应用。如果有更新,这可能会变得更复杂 – 2011-05-21 00:04:04
@ b.buchhold,是的,表中的数据是频繁更新,更改。所以这很困难......至少我没有任何好主意。所以要求帮助,如果有人有明智的方法。 – 2011-05-21 00:11:46
它是(标题,内容,日期)或btree索引的全文索引吗? – 2011-05-22 19:53:10