Mysql
 sql >> Baza danych >  >> RDS >> Mysql

CodeIgniter - ses_destroy() używa DUŻO procesora

Robienie zdjęcia w ciemności (jeśli masz pewność, że ta funkcja powoduje spowolnienie):

Po pierwsze, możesz włączyć powolny dziennik zapytań MySQL:

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

Następnie, jeśli $sess_use_database jest TRUE możesz spróbować zoptymalizować tabelę sesji. Możesz mieć pewne ogólne problemy powodujące problemy.

Poza tym jedyną rzeczą, o której mogę pomyśleć, jest problem z serwerem DB. Możesz spróbować uruchomić MySQL Tuner, aby zobaczyć, czy możesz coś poprawić:

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

Mam nadzieję, że to pomoże!

FYI

Oto kod, który jest uruchamiany, gdy OP uruchamia sess_destroy() (od wersji 2.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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabeli docelowej UPDATE nie można aktualizować

  2. Zamykanie zestawu wyników przesyłania strumieniowego (przy użyciu mysql jdbc) zajmuje dużo czasu

  3. Sprawdź, czy aktualna data jest między dwiema datami + mysql select query

  4. Jak zamówić Laravel MySQL, wyniki w takiej samej kolejności, jak w klauzuli whereIn

  5. Jak zmienić zestaw znaków z latin1 na UTF8 w MySQL?