1

犯罪数、犯罪の説明、犯罪のカテゴリ、犯罪の住所を含む mysql テーブルを作成しました。このテーブルに関するいくつかのレポートを作成しました。ユーザーは、レポートで住所フィルターによる検索を行いたいと考えています。そのため、table で where 句を使用し、street に対して条件を設定します。

問題は、住所が非常に大きな文字列であり、テーブルがすでに非常に大きい場合に、住所でテーブルを検索/フィルタリングすると、多くの時間がかかることです。md5(streetaddress) のようなハッシュを使用してみましたが、それも役に立ちませんでした。この種の where 句を使用すると、クエリが非常に遅くなります

select * from crimedata where streetaddress = "41 BENNETT RD Watertown  Massachusetts United States"

この場合、番地のインデックスは役に立ちますか、それとも、テーブル内でこの種の文字列検索を高速化するために何らかのハッシュを使用する必要がありますか?

シャー

4

3 に答える 3

0

番地にインデックスを追加すると少しは役に立ちますが、制限があります。

ストレージ エンジンをフルテキスト検索をサポートするものに変更することを検討してください。例はMroongaです

注: 私はMroongaとは関係ありません。以前にライブラリを使用する機会があり、テキスト検索が改善されることがわかりました。

于 2014-10-14T18:29:01.463 に答える