2

私はCodeigniterで約1年間正常に動作しているWebアプリを作成しましたが、突然、アプリケーションが1日の特定の時間に非常に遅くなりました。(ページの読み込みに30秒以上かかることもあります)。ロギングを開始しましたが、一部のクエリの実行が非常に遅いことがわかりました。

9.6776      SELECT * FROM (`ci_sessions`) WHERE `session_id` = 'f2f356fb32a4e65ad3eb18f5baa74cfb' AND `user_agent` = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11' 
28.9770     UPDATE `ci_sessions` SET `last_activity` = '1335753561', `user_data` = 'a:7:{s:6:\"userID\";s:1:\"3\";s:12:\"userFullName\";s:15:\"Christian Varga\";s:5:\"admin\";s:1:\"1\";s:7:\"timeout\";s:5:\"86400\";s:12:\"lastActivity\";s:10:\"1335928202\";s:8:\"prev_url\";s:58:\"http://exampleurl.com\";s:8:\"loggedIn\";s:1:\"1\";}' WHERE `session_id` = 'f2f356fb32a4e65ad3eb18f5baa74cfb' 

私の考えでは、データベースサーバーに問題があると思います。これは、これらのまったく同じクエリが正常に機能する場合もあれば、1日を通して途方もなく遅い場合もあるためです(上記のとおり)。しかし、私はすぐに指を指すので、ここをチェックして、コードに問題があると誰かが考えているどうか、またはサーバーの問題のように見えるかどうかを確認したいと思いました。

これについての考えをいただければ幸いです。

編集:Explain Selectの結果:

id  select_type   table         type    possible_keys       key         key_len     ref     rows    Extra
1   SIMPLE        ci_sessions   const   PRIMARY,user_agent  PRIMARY     122         const   1 
4

1 に答える 1

9

およびに複数列のインデックスを配置session_iduser_agentます。数百万の行がある場合でも、クエリを実行するのに実際の時間はかかりません。

于 2012-05-02T03:34:50.090 に答える