数据库
首页 > 数据库> > 如何确定MySQL服务器变慢的原因并且请求有时会超时?

如何确定MySQL服务器变慢的原因并且请求有时会超时?

作者:互联网

我正在研究第一个大量使用MySQL数据库的项目,并且正在努力理解我遇到的性能问题.

大多数情况下,响应是从服务器快速返回的,但是当我有一些脚本在后台运行大量查询(读取和写入数据)时,我发现其他请求接收响应的速度很慢,或完全超时.

例如,昨天当一个生成大量数据库查询的PHP脚本正在运行时,向服务器请求在返回响应之前发出大量查询的页面超时 – 我甚至无法使用Navicat连接到数据库,因为它也超时了.

在上面的示例中,我在SSH控制台中运行top / htop,发现CPU使用率非常低,内存使用率仅为50%左右.因此,我认为问题在于数据库,但我无法理解导致问题的原因,例如它们是否可能是由于:

>慢查询
>连接太多
>每秒查询太多
>我不知道的其他潜在问题

我知道慢查询日志,但我的查询都不是很慢.

我可以使用哪些方法或工具来确定导致MySQL数据库变慢的原因,有时请求甚至超时?

解决方法:

您需要调整数据库.这是一个包含许多变量和决策树的复杂过程.没有具体细节,我们只能真正让你从这里开始.

如果你有一个运行大量SQL的脚本并且使你的数据库运行速度变慢,并且你的cpu和内存使用情况正常,那么你可能会遇到I / O问题.即你正在锤击磁盘.您需要查看脚本中使用的SQL并进行调整.例如,它可能会生成大量全表扫描或创建太多会降低数据库速度的事务日志.首先,检查是否正在进行任何不必要的全表扫描,并查看是否可以向相关列添加索引以减少I / O.然后报告回来,我们可以从那里开始.

上面链接的MySQLtuner脚本非常好,但如果您对数据库缺乏经验,那么理解结果可能对您来说很有挑战性.在开始之前,请阅读主页上的免责声明:http://mysqltuner.com/

标签:performance,mysql,database-tuning
来源: https://codeday.me/bug/20190806/1599198.html