今天电话面试的一题,关于数据库查询优化的
刚才……突然就来了个电话,电话 面试 的……其中问了一道关于关于 数据库 查询性能的题目:
现在有三张表,其中一张 数据 量很大,其他两张表数据量都很少,那在where子句中大表的过滤条件应该摆在什么位置??是在where子句中的前面、中间还是最后?
之前没怎么想过,匆忙之间就回答了放在最后……
请 高手 们解惑~~
===================================================
唵不是高手!
听高手好像讲过,,,,,不一定听清楚了 " />
如果三张表
a数据量大
b数据量小
c数据量中
select * from b,c,a where b,c,a;
效率会高!先搜小数据量的,再找大数据量的表
不一定对,啊我只是听“谣言”说是这样
======================================================
楼主答错了,数据量的基础表应该放在from 后
如
select *
fromA--数据量大的表
,B
where A.student_id=b.student_id
具体可查看 http://leegang.org/thread-626-1-2.html 或 http://cjmiou.blog.163.com/blog/static/3130473720089211531403/edit/
下面的oracle优化,有关于表和列的位置(其中包括两个sql的对比,后面的执行速度会快一些)