我如何用group by加速mysql查询

时间:2015-02-12 09:59:50

标签: mysql indexing group-by full-text-search

我有简单的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

在这种情况下我该怎么做?

1 个答案:

答案 0 :(得分:1)

您是否尝试过索引product_id字段?

CREATE INDEX idx_product_id  ON product_search (product_id);

希望这会提高查询性能。谢谢。