mysql可以将in子句的查询结果放入临时表,并对记录进行去重(根据查询结果列建立主键,唯一索引,或者联合唯一索引),in子句的结果去重并不影响执行结果,如果子查询结果集并不是很大那么会使用memory赢球,并且建立hash索引(in子句相当于判断列是否在临时表中,这时候hash索引可以起到很好的作用),如果很大那么会使用基于磁盘的...
在连接时过滤掉特定的记录是非常必要的(如果不进行过滤那么就是多表的笛卡尔积,条数是多个表条数的乘积)多表连接查询中的过滤条件分为一下两种 单表查询的搜索条件 比如select * from a left join b where a>1,这里的单表查询搜索条件就是a>1,如果a是索引那么将使用单表查询的range访问方法 涉及两表的条件...