Mysql
 sql >> Datenbank >  >> RDS >> Mysql

CodeIgniter - ses_destroy() verbraucht viel CPU

Eine Aufnahme im Dunkeln machen (wenn Sie sicher sind, dass diese Funktion die Langsamkeit verursacht):

Zuerst könnten Sie das langsame Abfrageprotokoll von MySQL einschalten:

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

Dann, wenn $sess_use_database ist TRUE Sie könnten versuchen, Ihre Sitzungstabelle zu optimieren. Möglicherweise haben Sie einen Overhead, der Probleme verursacht.

Abgesehen davon fällt mir nur ein, dass es ein Problem mit Ihrem DB-Server gibt. Sie können versuchen, den MySQL-Tuner auszuführen, um zu sehen, ob Sie die Dinge ein wenig verbessern können:

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

Hoffe das hilft!

FYI

Hier ist der Code, der ausgeführt wird, wenn das OP sess_destroy() ausführt (ab 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
            );
}