2つの一致する列(c1、c2)を持つ2つのテーブルがあります。OR演算子を持つ列の複合インデックス
TABLE_A TABLE_B
======= =======
id id
c1 c1
c2 c2
double col_y
col_z
と私のクエリで私はレコードが似列ごとに一致しているかどうかを知っておく必要があります。今、私は列c1のための一つの指標と列c2に1つのインデックスを持っている
UPDATE table_a a SET double='Y'
WHERE EXISTS (SELECT *
FROM table_b b
WHERE a.c1=b.c1 OR a.c2=b.c2);
。
クエリを高速化するために、c1またはc2(c1とc2ではない)を検索するので、列c1とc2から複合インデックスを作成できますか?
OR演算子の間に句の順序はありますか?つまり、最初の場所に置く方がマッチが早いとc2がより早く見つかることができますか? – sbrbot
これは場合によってはこれが役立つことがあります。しかし、データベースはクエリの変換を行い、最速の方法を見つける必要があります。 –