Mysql
 sql >> Database >  >> RDS >> Mysql

CodeIgniter - ses_destroy() utilizza MOLTA CPU

Scattare una foto al buio (se sei sicuro che questa funzione stia causando la lentezza):

Innanzitutto, puoi attivare il registro delle query lente di MySQL:

http://dev.mysql.com/doc /refman/5.1/en/slow-query-log.html

Quindi, se $sess_use_database è TRUE potresti provare a ottimizzare la tabella delle sessioni. Potresti avere un sovraccarico che causa problemi.

A parte questo, l'unica altra cosa a cui riesco a pensare è che c'è un problema con il tuo server DB. Potresti provare a eseguire MySQL Tuner per vedere se puoi migliorare un po' le cose:

https://github.com/rackerhacker/MySQLTuner-perl

Spero di esserti stato d'aiuto!

Cordiali saluti

Ecco il codice che viene eseguito quando l'OP esegue sess_destroy() (dalla 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
            );
}