php - MySQL突然连接过多

标签 php mysql google-cloud-sql

嗨,我有点困惑定义我的问题标题,但这是我的条件和问题:

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

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

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

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

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

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

Screen Shot of Active Connection

一旦 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/

相关文章:

php - 返回第 2 列等于 1(第 3 列)的所有记录,而不在第 2 列中搜索

java - 在数据库中只存储没有时间的日期

php - htmlspecialchars 不允许换行?

PHP脚本复制

PHP : Check if the URL contains slash at the end

mysql - 为 TEMP 表授予权限(由存储过程动态创建)

php - App Engine (PHP) 与 Cloud SQL 的连接失败

php 身份验证 token + ios

php - 将 MySQL 数据导出到 Excel 会出错

postgresql - 使用 Cloud Shell 和 SSL 连接到 Google Cloud SQL PostgreSQL?