【MySql专栏】—— 关联查询join的流程以及优化

一、应不应该使用关联查询?

对于关联查询来说,并不是所有情况下都能使用的,有的公司会直接禁用关联查询,因为使用关联查询后,那么后序在项目升级时,对数据库进行分库分表后,关联查询就没办法在使用,所有代码都需要重构,不利于后期的维护和重构。本篇文章的前提条件是可以使用关联查询,那么在我们使用关联查询的时候需要注意什么?

为了后序的验证,这里创建两个表

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;

这条语句的执行流程如下图:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值