当前位置: 首页 > 面试题库 >

MySQL中有许多“查询结束”状态,使用所有连接仅需几分钟

酆阳煦
2023-03-14
问题内容

今天早上,我注意到我们的MySQL服务器负载越来越高。最大值应为8,但一度达到100以上。当我检查进程列表时,发现处于query end状态的大量更新查询(简单的查询,增加“
hitcounter”)。我们无法杀死他们(可以,但是可以将它们killed无限期地保留在州内),而我们的站点则停了下来。

重新启动服务时遇到了很多问题,不得不强行终止某些进程。当我们这样做时,我们能够使MySQLd重新启动,但是进程立即开始重新建立。据我们所知,目前尚未更改任何配置

因此,我们innodb_flush_log_at_trx_commit从2 更改为1(请注意,我们需要遵循ACID),希望这可以解决问题,并将PHP /
PDO中的连接设置为持久性。这似乎工作了一个小时左右,然后连接又开始耗尽。

幸运的是,我在几个月前就设置了一个从属服务器,并能够对其进行升级,目前它已经解决了问题,但是我需要了解为什么会发生这种情况以及如何停止它,因为从属服务器的功率明显不足相比于大师,所以我需要尽快切换回去。

有任何想法吗?可能需要清除某些东西吗?我不知道是什么,也许是二进制日志或其他东西?有什么想法吗?尽快将服务器恢复为主服务器是非常重要的,但是坦率地说,我不知道在哪里看,到目前为止,我所做的一切都只是临时修复。

帮帮我!:)


问题答案:

我会在这里回答我自己的问题。我用一个简单的df命令检查了分区大小,在那里我可以看到/
var已满100%。我发现有人留下的档案大小为10GB。删除该文件后,启动MySQL,运行PURGE LOGS BEFORE '2012-10-01 00:00:00'查询以清除空间负载,并将/ var / lib / mysql目录大小从346GB减小到169GB。变回主人,一切再次恢复正常。

由此,我了解到我们的日志文件非常大,非常快。因此,我将建立一个维护例程,不仅使日志文件保持关闭状态,而且在我们接近完整分区时向我发出警报。

我希望这对将来遇到相同问题的人有用。检查您的驱动器空间!:)



 类似资料:
  • 问题内容: 我一直在使用SQL Server,现在正在将MySQL用于一个项目。使用SQL Server,我们的开发人员可以在知道主机,用户名和密码的情况下连接到本地计算机上的远程数据库。但是,使用MySQL,要使开发人员能够从其本地计算机访问,我一直必须登录MySQL并执行: 开发人员机器的IP地址在哪里。当然,如果他们更改网络,则必须再次执行。有没有一种方法可以允许所有远程连接(如我在SQL

  • 我很难让mySQL返回我想要的结果,因此希望有人能给我一些关于我错在哪里的指示。我有3个表(Sales\u Area、Orders、Rooflight\u Request),Orders包含一个Sales\u Area\u ID列以连接Sales\u Area,因此Sales\u Area可以有多个订单。Rooflight\u请求包含Order\u ID,因此一个订单可以有多个Rooflight\

  • 问题内容: 为什么我们不能在MySQL中使用*关键字进行连接? 要么 还有其他方法可以访问列中的值而无需显式使用列名吗? 问题答案: 要连接表中的所有列,不能使用关键字,但是需要显式列出所有列: 或者您可能想使用它将跳过空值的方法: 如果您不想手动指定所有列名,则可以使用动态查询。该查询将返回表的所有列名称: 并使用GROUP_CONCAT,您可以获得所有列名称的列表: 用逗号分隔的格式引用: 因

  • 问题内容: 我正在尝试查询与所有给定标记集匹配的对象。 基本上,我希望用户能够添加越来越多的标签来过滤或“缩小”其搜索结果,就像newegg.com一样。 我的表结构是一个对象表,一个标签表和一个MANY:MANY关系表ObjectsTags。所以我有一个像这样的JOIN查询: 我尝试使用IN子句/条件,如下所示: 但是我了解到,这模拟了一系列OR,因此您向查询中添加的标签越多,得到的结果就越多,

  • 问题内容: 我可以在mysql数据库上打开审核日志记录吗? 我基本上想监视所有查询一个小时,并将日志转储到文件中。 问题答案: 使用–log选项启动mysql: 或在文件中放置以下内容: 任何一种都将所有查询记录到log_file_name。 您也可以使用选项代替来仅记录慢速查询。默认情况下,花费10秒或更长时间的查询被认为是缓慢的,您可以通过设置查询在记录之前必须执行的秒数来更改它。

  • 我想做仓库(当然很简单)。我有3张桌子,因为它是: 存储表 组表: 数据透视表group_store: 门店型号-: 群模型 当我在tinker中使用这个时 但当我尝试反过来 用消息'SQLSTATE[42S22]照亮\数据库\QueryExc0019:找不到列: 1054未知列'groups.store_id'在'where子句'(SQL:选择*从其中。=3和。不是null)' 我正在试图理解为