两张一样的表,查数据,分开查快还是union快? 两张一样的表,查数据,分开查快还是union快?就是说,有条数据不知道在哪个表里,现在要查出来.程序里可以先查一个表,没有的话再查另一个表,还是用union连接后直接查出呢?哪种效率高点呢?还想问个问题就是对于字典表的连接问题.表列比较多,几百个字段,而对应了很多字典表,查的时候做表连接呢?还是说程序显示的时候,在做字典转换?注:字典表在程序启动时都加入到了程序的cache中. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 union all 是两张表同时进行查询,肯定比分开一个一个的表查询要快很多。。 那程序,判断的话也许第一次就查到了,第二次就不用查了,表的数据量很大.union的效率会降低么? /*这个得看具体需求你说:[两张一样的,有条数据不知道在哪个表里,现在要查出来. 程序里可以先查一个表,没有的话再查另一个表, 还是用union连接后直接查出呢?]对于这条数据,有两种情况:1.在tab1表里2.在tab2表里如果此数据在tab1里面,那么你的查询将会很快,如果在tab2里面,按你说的分开查询,在程序里面,你就得写判断: if 数据在tab1里面 then 返回数据 else if 数据在tab2里面 then 返回数据 else 数据不存在为了避免这么麻烦的条件判断,你为何不将此两张表连接起来呢(如果数据量小的话);union 和union all连接两张表:union:将会过滤掉重复的数据行union all:将两个属性列相同(既查询出来的属性列数据类型相同)的表连接起来, 不删除重复的数据行;从效率角度看:union all远远大于union,在数据量大的情况下,当然二三十条数据时看不出有什么差别的;因为:union删除重复的数据行需要一段时间,而union all不需要删除重复数据行。*/ 楼主说的只有1条数据,或在A,或在B。我觉得不管是Union,Union All,或则是先查A,再查B,对性能的影响都不大,因为你的索引已经建好,匹配一条记录的时间绝对在1s以内! 不止一条记录.感谢各位.那就用union了. 一个简单重建SEQUENCE的存储过程 Oracle日志频繁读写如何修改 mapGIS出现ms-cannot-allocmem怎么办啊? 新手求教关联子查询的疑惑 请教高手,如何将查询结果直接另存为excel SQL语句,选定一批符合要求的数据 oracle , left join in连接一个子查询,结果为什么是空 如何执行一个过程。。 如何修改id是3的倍数的数据 (id 整型) 求SQL Navigator V4.31.460 Standard 序列号 在线等 关于group by 的问题 如果通过一个键盘来控制机房里的两台服务器?切换键是什么?
union all 是两张表同时进行查询,肯定比分开一个一个的表查询要快很多。。
那程序,判断的话也许第一次就查到了,第二次就不用查了,
表的数据量很大.union的效率会降低么?
/*
这个得看具体需求
你说:[两张一样的,有条数据不知道在哪个表里,现在要查出来.
程序里可以先查一个表,没有的话再查另一个表,
还是用union连接后直接查出呢?]
对于这条数据,有两种情况:
1.在tab1表里
2.在tab2表里
如果此数据在tab1里面,那么你的查询将会很快,
如果在tab2里面,按你说的分开查询,在程序里面,
你就得写判断:
if 数据在tab1里面 then 返回数据
else if 数据在tab2里面 then 返回数据
else 数据不存在
为了避免这么麻烦的条件判断,你为何不将此两张表连接起来呢(如果数据量小的话);union 和union all连接两张表:
union:将会过滤掉重复的数据行
union all:将两个属性列相同(既查询出来的属性列数据类型相同)的表连接起来,
不删除重复的数据行;
从效率角度看:
union all远远大于union,在数据量大的情况下,当然二三十条数据时看不出有什么差别的;
因为:union删除重复的数据行需要一段时间,而union all不需要删除重复数据行。
*/
我觉得不管是Union,Union All,或则是先查A,再查B,对性能的影响都不大,因为你的索引已经建好,匹配一条记录的时间绝对在1s以内!