mysql复习笔记05(小滴课堂)

发布时间:2023年12月21日

mysql的慢查询日志开启与问题定位

一张数据库数据很大的表。

查询一条数据,很快就查询出来了。

根据不同的条件,查到的数据相同,但是查询所花费的时间却是不同的。

使用命令查询慢查询日志是否开启,目前它是关闭着的。

开启日志。

也可以手动设置日志文件的所在路径。

这个日志只记录慢查询的sql语句,而不是所有的sql语句。

时间单位是秒。

查看日志:

我们执行两条sql,一个大于临界时间,一个低于临界时间。

超过临界时间的sql数据会存到日志中。

这种方法会帮我们定位到具体是哪条sql语句执行的慢。

mysql的sql语句执行过程解析

我们退出下数据库,再重启一下数据库服务:

一旦服务重启,慢查询日志就会恢复到默认配置。当然一般工作中是不会太多情况去重启mysql服务的。

如果想让它永久生效,只需要修改配置文件:

增加下面三行即可。

要记住,修改了配置文件后必须要重启服务。

我们能定位到哪条语句慢了,我们还需要看看如何去解析这条语句:

我们这两条语句,一个快,一个慢。

我们就可以分别解析一下:

我们可以看到一条使用了主键索引,查询范围是1条,另一个语句没有用索引,查询范围是全部数据。我们分析到这里就能看到问题所在了。

但是如果还不能看到问题原因,就会使用到我们接下来的方法:

先查看是否开启了性能详情。

我们去开启性能:

再一次使用查询慢的语句:

可以看到这条sql语句执行每一步所耗费的时间。

性能线程的详细解释官方文档链接:?

MySQL :: MySQL 5.7 Reference Manual :: 8.14.3 General Thread States

mysql语句优化的几个小建议

条件使用or可能会使索引丢失,浪费了索引。

当字段类型转换的时候也会丢失索引。

文章来源:https://blog.csdn.net/weixin_52618349/article/details/135129987
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。