过滤掉最多数据最多的先执行,这些都是优化器做的事
在这个查询中s.cid = c.cid是对应一个自然连接操作,t_student表上 age >20 and name like '%三%'对应两个选择操作,其中 age >20可以使用索引,而name like '%三%'不能够使用索引
因此,在age上有索引的情况下,数据库的查询优化器会按照如下顺序执行:
1 在表t_student上的age字段的索引上执行 age >20的索引扫描,得到相应记录;
2 在1中得到的记录上执行name like '%三%'选择操作;
3 将2中得到的记录与,t_class 表按照s.cid = c.cid执行连接操作。
如果是SQLSERVER的话,可以在查询分析器中看查询语句的执行计划,上面有相关的查询执行顺序和对应的物理执行操作