Terely 2015-10-06 06:52 采纳率: 0%
浏览 1745

连表查询,取前十条,先连接在取还是先取出在连接?mysql

下面举例说明:
用户表 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.

  • 写回答

3条回答 默认 最新

  • chen_sun2 2015-10-06 09:15
    关注

    要弄明白,你就要去看数据库的sql执行计划,数据库优化引擎

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?