MySQL高阶讲座之:`MySQL`的`Correlated Subquery`:其性能陷阱与`JOIN`重写。

OK,各位亲爱的码农朋友们,大家好!今天咱们来聊聊MySQL里一个让人又爱又恨的小妖精——关联子查询(Correlated Subquery)。说它小妖精,是因为它看起来挺简单,用起来也挺方便,但是一不小心,就会让你掉进性能的大坑里。 咱们今天就来扒一扒它的底裤,看看它到底有什么能耐,又有什么弱点,以及,怎么才能驯服它,让它乖乖地为我们服务。 第一幕:关联子查询是个啥? 简单来说,关联子查询就是指在子查询中引用了外部查询的列。这就像是两个人聊天,一个人说:“我喜欢那个…(停顿)… 你昨天说的那个!” “你昨天说的那个” 就是引用了外部的信息,必须结合上下文才能知道具体指什么。 举个栗子: 假设我们有两个表:Customers(客户表)和 Orders(订单表)。 Customers 表结构: Column Name Data Type customer_id INT name VARCHAR city VARCHAR Orders 表结构: Column Name Data Type order_id INT customer_id INT order_date DATE amount …