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

CodeIgniter - ses_destroy() bruger MEGET CPU

At tage et billede i mørke (hvis du er sikker på, at denne funktion er årsag til langsommeligheden):

Først kan du slå MySQL's langsomme forespørgselslog til:

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

Derefter, hvis $sess_use_database er TRUE du kan prøve at optimere din sessionstabel. Du kan have nogle overhead, der forårsager problemer.

Bortset fra det er det eneste andet, jeg kan komme i tanke om, at der er et problem med din DB-server. Du kan prøve at køre MySQL Tuner for at se, om du kan forbedre tingene lidt:

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

Håber det hjælper!

FYI

Her er koden, der køres, når OP'en kører sess_destroy() (fra 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. sql-forespørgsel for at returnere forskelle mellem to tabeller

  2. 6 grunde til, at Microsoft Access kan hjælpe din virksomhed

  3. Hvordan finder jeg ud af, om mit bord er MyISAM eller Innodb

  4. venstre join med betingelse for højre tabel i mysql