SQL语句很长,我这儿简化了下:
大致过程是这样的
第一步: 根据输入取ID;
第二步:根据ID 取内容;我写了2条SQL语句,他们执行速度相差10多倍,不知道什么原因,请教大家下:大致过程如下
tableID: 根据输入条件,得到ID,我把它作为一张临时表;
tableContex:根据输入条件,得到Context,这儿我也把它最为一 张临时表;根据tableID.id=tableContex.id 获取最终的结果;
方法一:select cont(*) from 
( select id from table0 ) as tableID;
( select * from tableContex ) as tableContex
where tableID.id=tableContex.id 方法二:select count(*) from 
( select id from table1 
union select id from table2
union select id from table3
) as tableID;
( select tableContex.* from tableContex ) as tableContexwhere tableID.id=tableContex.id 两种方法差别主要在第一步:
第一种方法是直接根据输入条件一步找出ID;
第二种方法是根据输入条件 先找出子对象,在根据子对象找出ID,最后再把结果合并。为什么这两种方法差别这么大?谁能解释下,SQL语句很长,我这儿把它简化,不知道大家能否明白我说的意思