sql >> Databasteknik >  >> RDS >> Mysql

CodeIgniter - ses_destroy() använder MYCKET CPU

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
            );
}



  1. Oracle PL/SQL:UTL_FILE.FCOPY Exempel

  2. Prestandaimplikationer av MySQL-händelseschemaläggning

  3. VÄLJ * FRÅN flera tabeller. MySQL

  4. Hur man byter namn på ett kolumnnamn eller tabellnamn i SQL Server - SQL Server / T-SQL självstudie del 36