SQL优化教程06-优化案例2多表查询

多表查询加索引方法

考虑设计两个数据表,教师表课程表
字段情况如下表所示:
在这里插入图片描述
现在对其进行跨表左连接查询,SQL语句为:

select * from teacher2 t left outer join course2 c on t.cid=c.cid where c.cname='java';

那么在关联查询的情况下,索引应该怎么加呢?

把握三个原则:

  • 左外连接或者右外连接,就给左表或者右表加索引。(左外连接说明保障左表,以左表为基础)
  • 加在数据量小的表上(数据量小的表在外侧,外侧的循环次数少,有利于程序运行)
  • 加在常用或者关键的字段上

因此,应该添加如下索引:

alter table teacher2 add index index_teacher2_cid(cid);
alter table course2 add index index_course2_cname(cname);

教程目录

SQL优化教程01-MySQL分层
SQL优化教程02-SQL解析
SQL优化教程03-B树和索引
SQL优化教程04-explain的用法
SQL优化教程05-优化案例1单表查询
SQL优化教程06-优化案例2多表查询
SQL优化教程07-避免索引失效的原则
SQL优化教程08-SQL排查
SQL优化教程09-锁机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值