从 mysqldumpslow 了解慢查询

从 mysqldumpslow 了解慢查询

我正在维护一个系统,该系统偶尔(没有确切时间)在晚上会导致整个服务器崩溃几秒钟,并且用户会看到“错误连接被拒绝”,直到系统恢复。

应用程序服务器正在运行 PHP 和 PHP-FPM 以及 Nginx。

我已经在数据库服务器上启用了慢日志,并mysqldumpslow给出了以下输出。

Count: 302  Time=44.50s (13439s)  Lock=0.00s (0s)  Rows=0.0 (0), 4users@2hosts
  #

Count: 44  Time=64.65s (2844s)  Lock=0.00s (0s)  Rows=0.0 (0), 3users@2hosts
  COMMIT

Count: 19  Time=82.44s (1566s)  Lock=0.00s (0s)  Rows=295151.3 (5607875), site-admin[site-admin]@7hosts
  SELECT /*!40001 SQL_NO_CACHE */ * FROM `audits`

我对该输出有几个疑问,如果有人可以解释这些查询是否会导致应用程序和数据库服务器完全锁定几秒钟,我将不胜感激。

  1. 这些查询运行缓慢是因为查询本身写得不好还是正在等待另一个查询完成?
  2. 那里似乎正在运行的COMMIT#和查询是什么?SELECT /*!40001 SQL_NO_CACHE */ * FROM 'audits'
  3. 关于最后一个查询,我读到它来自mysqldump服务器上运行的命令。这是否会导致累积,最终导致数据库和应用程序服务器崩溃?

相关内容