0

500 万レコードのテーブルがあります。mysql からの応答が 1 ~ 5 秒と非常に長い。リクエストに対して0.5秒を取得するように最適化するにはどうすればよいですか

CREATE TABLE `search` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` text,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `text` (`text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

リクエスト

SELECT  text 
FROM search 
WHERE MATCH (text) AGAINST ('+some +string*' IN BOOLEAN MODE)  
LIMIT 10

アップデート

多分この場合、スフィンクスが最善の解決策ですか?

4

2 に答える 2

1

これは、このような検索を行う方法の優れた要約です。

http://www.slideshare.net/billkarwin/practical-full-text-search-with-my-sql

FULLTEXT インデックスを使用すると、現在取得しているよりもはるかに高速に結果が得られます。

于 2013-09-06T10:59:53.233 に答える
0

テキスト列にインデックスを作成します。

于 2013-09-06T10:57:17.933 に答える