qq243920161 2019-04-25 16:22 采纳率: 0%
浏览 1516

为什么数据库的左外连接查询特别慢?

就查了7条记录就要2秒钟,绝对不能忍,用内连接很快,为什么用左外连接就慢成蜗牛。

查询语句:

explain select * from (
    select * from device where enterprise_id in (
        select enterprise_id from user_enterprise where user_id = 1
    )
) t1
left join (
    select * from device_data
    where device_data_id in ('139212', '139295', '142934', '142935')
) t2
using(device_id)

表结构:

表结构

explain结果:

图片说明

  • 写回答

2条回答 默认 最新

  • 太阳伞下的阿呆 2019-04-26 09:03
    关注

    1.本身所有外链接执行成本就高于内连接
    2.where in中使用子查询这种写法是极其不推荐的,in语法是有限制的。通常使用关联的方式写
    3.执行计划中已经指明了存在表扫描

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码