下面举例说明:
用户表 user 有1万条用户数据 部门编号 dept_id 对应 部门表 dept主键id;
现在取出来十条分页显示因为需要显示部门名称所以需要连接表;
注:请忽略一切影响查询速度的情况,比如索引,缓存等等,不考虑速度,只考虑执行的顺序流程是什么?
1.根据年龄大小排序后 取出前面十条
select * from user left join dept on user.dept_id=dept.id order by age limit 0,10;
这种情况答案貌似是肯定的,先连接表然后进行排序,最后给前面十条拿出来!
2.不进行排序 取出前十条
select * from user left join dept on user.dept_id=dept.id limit 0,10;
数据库进行查询的时候,它是先把这1万条user数据和dept表连接后在给我前面十条,
还是先从左表前面获得10条,在连接dept表给我的这10条呢?
question:
1)如果是先连接,那用户表数据庞大的时候数据库岂不是很弱智呢?
2)网上我看有很多数据库各个字段 比如 from limit where order 等执行先后顺序,这个是所有情况都一样的顺序吗?
3)我发现user表10万条数据和1万条数据执行这句话的时候时间没差距,这是不是说明数据库是先取得十条后连接的呢?
3.