我有一个包含 2 列的文章表
Id INT(4) PK 自动增量 说明 VARCHAR(250) (以及更多列)
该表包含 500.000 条记录,是一个 INNODB 表。现在我想搜索这样的文章:
SELECT COUNT(*) FROM article(描述如'%cannon%');
执行几乎需要一秒钟..
我该怎么做才能使这更快?
我已经在描述列上找到了索引
我有一个包含 2 列的文章表
Id INT(4) PK 自动增量 说明 VARCHAR(250) (以及更多列)
该表包含 500.000 条记录,是一个 INNODB 表。现在我想搜索这样的文章:
SELECT COUNT(*) FROM article(描述如'%cannon%');
执行几乎需要一秒钟..
我该怎么做才能使这更快?
我已经在描述列上找到了索引
您应该考虑在描述中添加全文索引:
http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html
然后使用:
SELECT
COUNT(*)
FROM article
WHERE MATCH (description) AGAINST ('cannon' WITH QUERY EXPANSION);
查询like '%cannon%'
很难优化。不,索引不能帮助你。也许全文搜索可以帮助你。