与ci_sessions表相关的 MySQL 性能缓慢


MySQL Slow Performance Related to ci_sessions Table

我在Codeigniter中构建了一个Web应用程序,该应用程序已经运行良好了大约一年,突然间应用程序在一天中的某些时间变得非常慢。(有时页面加载时间为 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' 

我的想法是数据库服务器有问题,因为有时这些完全相同的查询工作正常,然后一天中的其他时间它们慢得离谱(如上所述(。但是我很快就指出了,所以我只是想在这里检查一下是否有人认为代码可能有问题,或者它看起来像是服务器问题。

我将不胜感激对此的任何想法。

编辑:解释选择的结果:

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 

session_iduser_agent 上放置一个多列索引。然后,即使您有数百万行,执行查询也不应该花费任何实际时间。