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进阶课程,二进制文件恢复的时候感觉的。