FALSE AND (expression)
MySQL論理評価はJOIN節でレイジー/短絡ですか?
MySQLは式を評価するか、FALSE
が表示されたらすぐに移動しますか?
私がやってクエリをスピードアップしたいcontext--いくつかの背景:それは起こった場合、私はこのクエリsee this answer
をやっている理由に常にnon_indexed_column_a=non_indexed_column_b
を評価する上でのバックグラウンドについては
JOIN... ON (indexed_column1=indexed_column2 AND non_indexed_column_a=non_indexed_column_b)
それで時間が節約されることはありません。
私はクエリオプティマイザは完全にこの些細な場合を排除すると思うだろう。ただし、静的に削除できない場合は、SQL Serverなどのエンジン(MySQLではなく、付与されています)**は評価票**を保証しません。これは実際にインデックスなどでより効率的になるのに役立ちます。 MySQL固有の実装がどのように機能するかを知ることは興味深いでしょう。 –
私はいくつかの文脈を追加しました – babonk
http://stackoverflow.com/questions/789231/is-the-sql-where-clause-short-circuit-evaluated(MySQLには特有ではありませんが、 less)、http://stackoverflow.com/questions/4449105/mysql-and-condition –