嗨,我有点困惑定义我的问题标题,但这是我的条件和问题:
我有一个由 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 请求失败,就会发生这种情况。一旦发生这种情况,数据库将始终返回“连接过多”错误,我需要手动重新启动 CloudSQL 实例。
有时这个 PHP 程序会成功运行,但有时却不能并给出这样的问题。
所以我的问题是:出了什么问题?
注意。我已经放置了 mysql_close 函数来确保每次 PHP 成功执行查询时都会关闭连接。
更新问题: 我尝试检查数据库中的连接详细信息,发现发生了很多“等待插入”,因为当我尝试选择数据的同时,数据库每秒不断地通过插入查询获取新数据。
这就是导致我错误的原因吗?如果是的话,事件连接怎么会突然增加 4000% 倍,而在正常情况下,即使我不断对数据库进行插入过程,我也只有 4-6 个事件连接?
谢谢
最佳答案
您是否将 mysql_close 放在 finally
语句中?
http://php.net/manual/en/language.exceptions.php
如果不放在finally
内,程序内部出错可能无法执行
关于php - MySQL突然连接过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40457978/