MySQL 连接突然过多

MySQL Suddenly Too Many Connection

嗨,我有点混淆定义我的问题标题,但这是我的情况和问题:

我有一个由 PHP 和 MySQL 创建的云应用程序(我使用 Google Cloud SQL)

我的数据库每秒主动获取数千条新数据(包含我的很多用户位置和活动)

我创建了一个 PHP 程序来从这些数据中提取洞察力,查询如下:

SELECT username,time_of_activities FROM (table_name) WHERE latitude>=somevalue AND longitude>=somevalue

对于每个请求,我都会按顺序请求多个查询,其中每个查询将处理我数据库中的数百万行数据。 PHP 程序将显示一些与用户活动相关的洞察信息。

我的问题是: 有时 PHP 程序无法执行请求。当请求失败时,我检查了 CloudSQL 活动连接,活动连接在几秒钟内突然增加了 4000%。

一旦 PHP 请求失败,就会发生这种情况。一旦发生这种情况,数据库将始终 return "Too many connection" 错误,我需要手动重启 CloudSQL 实例。

有时这个PHP程序会成功运行,但有时不会并给出这样的问题。

所以我的问题是:怎么了?

注意。我已经放置了 mysql_close 函数来确保每次 PHP 成功执行查询时关闭连接。

更新问题: 我尝试检查我的数据库中的连接详细信息,我发现有很多 "Waiting for Insert" 发生,因为数据库每秒不断地通过插入查询获取新数据,同时我尝试 select数据。

这是导致我错误的原因吗?如果是的话,活动连接怎么会突然增加 4000% 倍,而在正常情况下,即使我不断地对数据库进行插入过程,我也只有 4-6 个活动连接?

谢谢

您是否将 mysql_close 放在 finally 语句中?

http://php.net/manual/en/language.exceptions.php

如果不放在一个finally里面,如果程序内部出错,可能会执行不出来