2

私は次のようなクエリを持っています:

SELECT * 
FROM table_a
LEFT JOIN table_b ON table_a.id_a = table_b.id_a
WHERE
table_b.field = 'something' OR table_b.field IS NULL

table_b.field = 'something' のレコード、または table_a の行に対して table_b にレコードがないレコードが必要です。IS NULL を追加すると、クエリの実行に約 60 秒かかりますが、それがない場合は 0.4 秒かかります。

誰でもこの動作を説明できますか? IS NULL は最適化を否定していると思いますが、完全にはわかりません。

4

1 に答える 1

1

Table_b の Field にインデックスはありますか? 連結インデックスにある場合は、それが最初のものであることを確認してください。

于 2012-03-06T21:19:19.100 に答える