2016-09-16 8 views
0

私のクエリにはLIKE "%BLABLA"が含まれています。インデックスを追加するとクエリが最適化されますか?はいの場合、クラスター化されていないB +ツリーのインデックス作成によってクエリが改善されますか?SQLでの奇妙なワイルドカードのインデックス付け

ありがとうございます!

+0

使用しているdbmsにタグを付けます。これは製品固有の質問です! – jarlh

+1

'LIKE'フィルタはツリー走査中にワイルドカードの後ろに来るものを使うことはできません。だから私はこの特定のクエリでインデックスが役立つとは思わない。 –

+0

@TimBiegeleisenしかし、ここでは:http://stackoverflow.com/questions/543580/equals-vs-like/39531185#39531185他のLIKE式でも可能だと言っています。 – Codevan

答えて

1

LIKE 'abc'は、= 'abc'と非常によく似ています。
LIKE 'abc%'は「範囲」です。これは私たちにインデックスを提供する可能性があります。
LIKE '%abc'は、の先頭にワイルドカードが含まれているため、インデックスを使用できません。

あなたの質問に対して何ができるか議論したい場合は、質問全体とSHOW CREATE TABLEを入力してください。

1

反転したデータを別のフィールドに格納し、その反転フィールドにインデックスを追加し、その反転フィールドに対してクエリを実行することができます。 LIKE '%abc'を使用する代わりに、反転フィールドを使用してLIKE 'cba%'を使用します。

関連する問題