■対象バージョン : 7.0.x, 8.0.x, 9.0.x
■対象OS :全て
ST0601052
検索引数(sargable)
Tips!
WHERE 句、HAVING 句、または ON 句に記述する条件式を「述部」といいます。 述部は単体、または論理演算子 AND や
OR
と組み合わせて使用されます。
この述部の中でも、テーブルからローを取り出すためにインデックスを利用することができる述部を「検索引数(sargable)」といいます。
述部が検索引数であるかどうかは条件式の記述に依存します。
次に示す各例では、属性
x と y は、単一テーブルのそれぞれのカラムです。属性 z は、別のテーブルに格納されています。このような属性のそれぞれにインデックスが 1
つ存在することが前提です。
検索引数
|
非検索引数
|
x = 10
|
x <> 10
|
x IS NULL
|
x IS NOT NULL
|
x > 25
|
x = 4 OR y = 5
|
x = z
|
x = y
|
x IN (4, 5, 6)
|
x NOT IN (4, 5, 6)
|
x LIKE 'pat%'
|
x LIKE '%tern'
|
x = 20 - 2
|
x + 2 = 20
|
述部が非検索引数である場合、カラムにインデックスがあっても、そのインデックスは使用されませんので、述部の記述方法に注意して、可能であれば検索引数になるように書き換えて下さい。
|
|