关于where后面的执行顺序问题select * from tablename where field1 = 'aa' and field2 = 'bb' and field3 = 'cc' 查了很多网上资料,大部分是说从左到右执行,
但是还有的说,如果field3有索引,msSQL会自动判断先执行field3我也弄糊涂了,能否提供一个官方的说法,给出一个确切的执行顺序?
但是还有的说,如果field3有索引,msSQL会自动判断先执行field3我也弄糊涂了,能否提供一个官方的说法,给出一个确切的执行顺序?
field1 = 'aa' and field2 = 'bb' and field3 = 'cc
你这句话如果没有索引或主键,会按照从左到右顺序执行全表扫描,但如果某一字段是主键或者索引
根据SQL内部优化,会按照主键和索引来扫描表。由于全部是AND,所以按这个字段来扫描表,也就是先
比较该字段满足条件的数据,其他的字段是从左到右再做筛选。