Ta en bild i mörkret (om du är säker på att den här funktionen orsakar långsamheten):
Först kan du aktivera MySQL:s långsamma frågelogg:
http://dev.mysql.com/doc /refman/5.1/en/slow-query-log.html
Sedan, om $sess_use_database
är TRUE
du kan försöka optimera din sessionstabell. Du kan ha några omkostnader som orsakar problem.
Bortsett från det är det enda andra jag kan komma på att det finns ett problem med din DB-server. Du kan prova att köra MySQL Tuner för att se om du kan förbättra saker och ting lite:
https://github.com/rackerhacker/MySQLTuner-perl
Hoppas det hjälper!
FYI
Här är koden som körs när OP kör sess_destroy()
(från v2.0.2):
/**
* Destroy the current session
*
* @access public
* @return void
*/
function sess_destroy()
{
// Kill the session DB row
if ($this->sess_use_database === TRUE AND isset($this->userdata['session_id']))
{
$this->CI->db->where('session_id', $this->userdata['session_id']);
$this->CI->db->delete($this->sess_table_name);
}
// Kill the cookie
setcookie(
$this->sess_cookie_name,
addslashes(serialize(array())),
($this->now - 31500000),
$this->cookie_path,
$this->cookie_domain,
0
);
}