SELECT * FROM t WHERE a = 1 AND b = 1 AND c = 1
我的疑问是mysql是否会遵照次序依次进行:
1. 查出 a = 1 的所有记录
2. 从以上得出的记录中查出 b = 1 的
3. 同上或者:
1. 查出 a = 1 以及 b = 1 以及 c = 1

解决方案 »

  1.   

    如果什么索引都没有,则MYSQL会对表T中所有记录逐一检查是否符合条件 a = 1 AND b = 1 AND c = 1如果有索引,则看索引的情况,这个可以先参考,阅读一下MYSQL官方免费手册的第七章,优化,中的WHERE优化部分。
      

  2.   

    sql查询也是执行顺序的。
     1、from子句组装来自不同数据源的数据;    
     
      2、where子句基于指定的条件对记录行进行筛选;  
      3、有无索引也是有差别的,没有索引同时三个条件,如果有索引的话索引优先。