有好多时候,我们常听别人说大表在前,小表在后,包括现在好多百度出来的靠前的答案都有说数据库是从右到左加载的,所以from语句最后关联的那张表会先被处理。如果三表交叉,就选择交叉表来作为基础表。等等一些结论,但是这些真的正确么?我就回家做了一个小的验证,来看一看到底是怎么一回事。(博主作实验用的是Oracle,但是不代表只是Oracle是这样的原理,现在大部分的关系型数据库都是一样的)

  首先我们来执行一下以下的sql语句,来看一下执行计划。看一看到底是怎么样的。

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

1 drop table tab_big; --删除原有big表2 drop table tab_small;3 create table tab_big  as select * from dba_objects where rownum<=30000;  --创建表,并且插入记录4 create table tab_small  as select * from dba_objects where rownum<=10;5 set autotrace traceonly --开启执行计划和统计信息6 set linesize 10007 set timing on 8 select count(*) from tab_big,tab_small;  
9 select count(*) from tab_small,tab_big;

Android培训,安卓培训,手机开发培训,移动开发培训,云培训培训

  OK,完事后咱们来看一看,到底表的顺序到底是否会影响到数据库的执行效率,我们来看一下”select count(*) from tab_big,tab_small“和”

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式