参天豆芽菜 2018-09-20 03:21 采纳率: 0%
浏览 2742
已结题

union all 和 or 效率问题

网上都说union all效率比or快,可是实际使用过程中发现or比union all快,sql语句如下,使用or查询耗时1s多,union all耗时2s多,表数据大概有8千万左右,是按天分区的。
union all 的sql语句1:
select * from t_m_train_record t where t.stunum='5111786145333504' and t.traintime between to_date('20180710122954','yyyymmddhh24miss') and to_date('20180710153940','yyyymmddhh24miss') union all select * from t_m_train_record t where t.stunum='5111786145333504' and t.traintime between to_date('20180711141455','yyyymmddhh24miss') and to_date('20180711161920','yyyymmddhh24miss');

or 的sql语句2:
select * from t_m_train_record t where t.stunum='5111786145333504' and t.traintime between to_date('20180710122954','yyyymmddhh24miss') and to_date('20180710153940','yyyymmddhh24miss') union all select * from t_m_train_record t where t.stunum='5111786145333504' and t.traintime between to_date('20180711141455','yyyymmddhh24miss') and to_date('20180711161920','yyyymmddhh24miss');

  • 写回答

4条回答 默认 最新

  • a529452837 2018-09-20 03:35
    关注

    不考虑走索引优化之类的。从理论上or是要快一点,因为or只扫描一遍表, union要两次。 但是如果考虑索引的话union all可以比or要快
    这个要看具体执行计划和表数据的分布情况

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)