Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

CodeIgniter - ses_destroy () sử dụng NHIỀU CPU

Chụp ảnh trong bóng tối (nếu bạn chắc chắn chức năng này gây ra hiện tượng chậm):

Đầu tiên, bạn có thể bật nhật ký truy vấn chậm của MySQL:

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

Sau đó, nếu $sess_use_databaseTRUE bạn có thể thử tối ưu hóa bảng phiên của mình. Bạn có thể có một số chi phí gây ra sự cố.

Ngoài điều đó ra, điều khác duy nhất tôi có thể nghĩ đến là có vấn đề với máy chủ DB của bạn. Bạn có thể thử chạy MySQL Tuner để xem liệu bạn có thể cải thiện một chút mọi thứ hay không:

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

Hy vọng điều đó sẽ hữu ích!

FYI

Đây là mã được chạy khi OP chạy sess_destroy() (từ 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào tôi gọi bind_param nếu sử dụng các câu lệnh được chuẩn bị sẵn trong MySQLi trong một vòng lặp?

  2. Ràng buộc duy nhất &chèn hoặc cập nhật cho cả MySQL và SQLite

  3. Truy vấn cập nhật động PHP PDO tới MYSQL

  4. Loại trừ các bản ghi trong đó truy vấn con trả về kết quả cần loại trừ lẫn nhau

  5. Cách lấy người dùng từ cơ sở dữ liệu hiện có cho IDServer4