2列の記事テーブルがあります
Id INT(4)PK自動インクリメント 説明VARCHAR(250) (およびより多くの列)
このテーブルには500.000レコードが含まれており、INNODBテーブルです。今、私はこのような記事を検索したいと思います:
SELECT COUNT(*)FROM article('%cannon%'のような説明);
実行にはほぼ1秒かかります。
これを高速化するにはどうすればよいですか?
説明列にすでにインデックスがあります
2列の記事テーブルがあります
Id INT(4)PK自動インクリメント 説明VARCHAR(250) (およびより多くの列)
このテーブルには500.000レコードが含まれており、INNODBテーブルです。今、私はこのような記事を検索したいと思います:
SELECT COUNT(*)FROM article('%cannon%'のような説明);
実行にはほぼ1秒かかります。
これを高速化するにはどうすればよいですか?
説明列にすでにインデックスがあります
説明に全文索引を追加することを検討する必要があります。
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%'
、最適化するのが非常に困難です。いいえ、インデックスは役に立ちません。多分全文検索があなたを助けることができます。