我想用我的網絡全文進行搜索。我需要使用分頁進行搜索。我的數據庫有超過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