数据库中inner join有时候会比left join慢,可能的原因

时间:2025-03-19 11:10:02

数据库中inner join有时候会比left join慢,可能的原因

如果单纯看逻辑运算数量的话,left join的逻辑运算数量会比inner join多,因为inner join只返回左右表的交集,而left join会返回左表中全部记录,若右表无对应记录,则置为null。Inner join在连接的时候会选取较小的表作为主表进行循环,减少循环的次数。Left join默认使用左表作为主表进行循环。可能的原因是连接字段没有在大表上建索引,但是在小表上建了索引,而此时left join的左表是大表,在循环查找过程中走小表的索引,而此时inner join中小表为左表,在按连接字段值相等的情况下去查右表的情况下,不走右表的索引,所以导致inner join比left join慢。