Mysql-左右链接,慢查询,

本文深入探讨了SQL的左连接(left join)、右连接(right join)和内连接(inner join)的区别与应用场景,同时讲解了如何通过开启MySQL慢查询日志来定位并优化执行效率低下的SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A表,B表

select * from A left join B on A.id = B.id;

left join 是以A表做为节点去匹配B表中的数据,查询的以A表为基础去寻找,假设A中有4条数据,而B中有10条数据,那么最终left join查询出来的数据将会只有4条,至于里面的字段如果没有以空位表示。

select * from A right join B on A.id = B.id;

right join 是以B表作为节点去匹配A表中的数据,假设B表有10条数据,而A表只有4条数据,那么本次查询,right join 将会查询到10条记录,查询不到的值以null代替。

select * from A inner join B on A.id = B.id;

inner join 是获取两个表中所有以A.id 想等于B.id做匹配,只要符合就出现。

mysql的慢查询日志,是需要开启的,如果某天网站访问变得很慢,可以开启mysql的慢查询日志,然后运行整个项目跑一下,看看日志中记录了那些sql语句,在根据sql语句进行优化,提升网站访问速度。慢查询日志,有个参数可设置,默认应该是执行超过10秒进行,写入到日志中,
在这里插入图片描述

# sql查询 语句
show variables like '%slow%';
# 打开mysql中的my.ini文件,添加到[mysqld] 这个模块中  开启慢查询日志文件,就会生成一个慢查询日志文件。路径就是上方图片的路径,配置好了切结重启mysql.
# 两个参数一个是开启慢查询日志,一个是查看写入日志时间。
slow_query_log=ON
long_query_time=2

如下图所示,表示开启了慢查询日志记录,这时运行整个项目,看看那条sql语句执行的时间超过了自己定义的时间。即可对单个sql进行优化。
在这里插入图片描述

三条sql语句执行方式。

在这里插入图片描述

别人教你的,或者看的培训的课程,只会教你怎么用,遇见了问题可以怎么结局,或许也会教你一些底层的东西,但实际上有很多东西,是需要自己去研究,去看,去写,去实践,这些都是花时间,不可能一口就吃撑一个胖子的,如果想要有一个更好的发展,那么你就必须要吧心沉下去,去看那些晦涩难懂的源码,去想为什么这么写就能实现这样的问题。

这是我在今天学习mysql进阶课程,二进制文件恢复的时候感觉的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值