您好我有点混淆定义我的问题标题,但这是我的条件和问题:
我有一个由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程序会成功运行,但有时候不能解决这个问题。
所以我的问题是:出了什么问题?
NB。我已经推出了mysql_close函数,以确保每次PHP成功执行查询时都关闭连接。
更新问题: 我尝试检查数据库中的连接细节,发现有很多"等待插入"发生这种情况是因为当我尝试选择数据的同时,数据库每秒都会不断地使用插入查询获取新数据。
这是什么原因导致我的错误?如果是,如果在正常情况下,活动连接突然大了4000%,我只有活跃的4-6连接,即使我经常对数据库执行插入过程?
由于
答案 0 :(得分:0)
您是否将mysql_close放在finally
声明中?
http://php.net/manual/en/language.exceptions.php
如果你不把它放在finally
里面,如果程序中有错误则可能无法执行