2009-05-18 14 views
0

私たちはinnoDBエンジンを使ってMySqlでデータベースを開発しています。データベースには、約3000文字の各エントリを含むvarchar型の列が含まれています。私たちはこのコラムを検索します。高速化のために、この列にインデックスを追加する必要があります。この点についていくつかの情報を記入できますか?mysql performance

検索を高速化するためには、どのタイプのインデックスを挿入する必要がありますか?パフォーマンスの向上のためにそれを気にする必要がありますか?

SELECT * from cars WHERE car LIKE '%{search_str}%' 

は、その後、私はあなたがcar列のmysqlにキーを追加しても、まだフルを実行する必要がありますことを恐れています:検索であなたは、このようなクエリを実行することがありますを意味している場合

答えて

3

あなたのクエリは非常に遅くなる可能性があります。

検索するデータの量が膨大で、高いqps番号が必要な場合は、Apaches Luceneプロジェクトをご覧ください。これにより、実行された検索クエリのスピードが大幅に向上します。さらに、フルテキスト検索もサポートしています。

1

duckyは、SQL LIKEを使用して列を照会すると、列に置かれた索引に関係なく、照会が非常に遅くなると言います。代わりに、InnoDBテーブルのこの列にフルテキスト検索を使用するのMyISAMデータベースへ

  • スイッチ:

    は、2つのオプションがあります。これは、列に「フルテキスト」インデックスを配置することによって行われます。 More Information.

  • Luceneのようなツールをフルテキスト検索に使用する