一、应不应该使用关联查询?
对于关联查询来说,并不是所有情况下都能使用的,有的公司会直接禁用关联查询,因为使用关联查询后,那么后序在项目升级时,对数据库进行分库分表后,关联查询就没办法在使用,所有代码都需要重构,不利于后期的维护和重构。本篇文章的前提条件是可以使用关联查询,那么在我们使用关联查询的时候需要注意什么?
为了后序的验证,这里创建两个表
CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `a` (`a`)
) ENGINE=InnoDB;
create table t2 like t1;
其中:表t1中有100条数据,表t2中有1000条数据
二、关联查询使用了索引(Index Nested-Loop Join)
首先我们来看一下,下面这条语句:
select * from t1 left join t2 on t1.a = t2.a;
这条语句的执行流程如下图: