我有简单的MyISAM搜索表,我在其中索引全文搜索“search_text”搜索文本
表格结构:
CREATE TABLE IF NOT EXISTS `product_search` (
`dept_id` int(11) unsigned NOT NULL DEFAULT '0',
`product_id` int(11) NOT NULL DEFAULT '0',
`search_text` longtext,
FULLTEXT KEY `search` (`search_text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
查询:
SELECT p.product_id
, p.dept_id
FROM product_search p
WHERE (MATCH(search_text) AGAINST('fathers day') AND 1 )
GROUP BY product_id LIMIT 50
使用分组 10-12 秒
没有分组, 0.0086 秒
当我用explain解释查询时 查询说明:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE p fulltext search search 0 1 Using where; Using temporary; Using filesort
在这种情况下我该怎么做?
答案 0 :(得分:1)
您是否尝试过索引product_id
字段?
CREATE INDEX idx_product_id ON product_search (product_id);
希望这会提高查询性能。谢谢。