2016-11-07 28 views
0

こんにちは、私は少しは私の質問のタイトルを定義するために混乱が、ここで私の条件と問題です:MySQLの突然多すぎる接続

私はPHPとMySQLで作成されたクラウドアプリを持っている(私はGoogleのクラウドSQLを使用)

私のデータベースには、積極的に新しいデータの千を取得している私のようなクエリを使用して、これらのデータから洞察を抽出するためのPHPプログラム作成

(私のユーザーの場所や活動を多く含む)毎秒:

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

すべてのリクエストに対して、私はいくつかのクエリを要求しています。各クエリは、データベース内の何百万もの行データを処理します。そして、PHPプログラムは、ユーザの活動に関連するいくつかの洞察力情報を表示します。

私の問題は次のとおりです。 PHPプログラムが要求を何回か失敗しました。要求が失敗した場合、CloudSQLのアクティブな接続をチェックし、アクティブな接続は数秒で突然4000%増加します。

​​

PHP要求が失敗した後にこれが起こります。これが起こると、データベースは常に「接続が多すぎます」というエラーを返し、CloudSQLインスタンスを手動で再起動する必要があります。

時には、このPHPプログラムは正常に実行されますが、時にはこのような問題が発生することはありません。

私の質問です:何が間違っていますか?

NB。 PHPがクエリを正常に実行するたびに接続が閉じられていることを確認するためにmysql_close関数を実行しました。

更新の質問: データベース内の接続の詳細を確認しようとしましたが、同時に挿入するたびに新しいデータが1秒ごとに挿入されるため、「挿入待ち」が多数発生しています私はデータを選択しようとします。

これが私のエラーの原因ですか?もしそうなら、私はいつもデータベースへの挿入プロセスを実行していますが、通常の状態ではアクティブな接続が突然4000%増えます。

おかげ

+0

内部エラーが発生した場合、それが実行されないことがあり、同じ時間内に任意の選択および更新クエリの実行 –

+0

@HasiburRahamanがあります私はちょうど私の質問を更新し、はい選択と更新が同時にあります。私はこれにどのように対処できますか? –

+0

挿入と更新のクエリを一度停止し、サーバーをチェックしてください。この挿入と更新を停止した後にファイルを作成すると、このクエリを最適化する必要があります。 –

答えて

0

あなたはfinally文の中にmysql_closeを入れましたか?

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

あなたはfinally内側に入れていない場合はプログラム

+0

こんにちは私は各データの挿入と選択プロセスの最終的な例外の下にmysql_closeを入れようとします。これは挿入と衝突の選択の問題を解決できると思いますか? –

関連する問題