0

ユーザーが「Apples」を検索すると、「Shiny Apples」や「Rotten Apples」などの関連検索を含む列が表示されるスクリプトがあります。

問題は、検索データベースに 5,600,000 行があり、mysql が非常に遅れていることです。

これが私のコードです:

$get = mysql_query("SELECT keyword FROM searches WHERE MATCH (keyword) AGAINST ('".mysql_real_escape_string(preg_replace('#([\S]+)#', '$1', $title))."' IN BOOLEAN MODE) LIMIT 0,15");

これは処理に非常に長い時間がかかり、毎秒検索が実行される非常にアクティブな Web サイトを持っています。誰かヒントを教えてもらえますか?

ありがとう!

4

2 に答える 2

3

インデックスが必要です。過去に、インデックスを作成するだけでパフォーマンスが大幅に向上したという経験があります。

于 2012-06-07T02:09:40.203 に答える
0

処理を高速化するには、調べる列にインデックスを付ける必要があります。Mysql のネイティブ検索をやめたのは、それが最悪だったからです。Lucene に引っ越しましたが、魅力的に動作します

于 2012-06-07T01:54:31.773 に答える