この質問は 私が疑問に思っていることを回避しますが、答えは正確にそれに対処していません。
一般に、ワイルドカードを使用する場合、「=」は「like」よりも高速であるように見えます。これは一般通念のようです。ただし、限られた数の異なる固定のハードコードされたvarchar識別子を含む列があり、それらの1つに一致するすべての行を選択するとします。
select * from table where value like 'abc%'
そして
select * from table where value = 'abcdefghijklmn'
'Like'は、最初の3文字をテストして一致を見つけるだけでよいのに対し、 '='は文字列全体を比較する必要があります。この場合、「like」には利点があり、他のすべての条件は同じであるように思われます。
これは一般的な学術的な質問として意図されているため、どのDBでも問題ありませんが、SQL Server2005を使用して発生しました。
value
は、インデックスが作成されているかどうかです。もしそうなら、それ=
はテーブルスキャンを必要としない単純なルックアップでありLIKE
、あなたがそれに投げたどんなステートメントからもズボンを打ち負かします。