sql >> データベース >  >> RDS >> Mysql

CodeIgniter-ses_destroy()は大量のCPUを使用します

    暗闇の中で撮影する(この機能が速度低下の原因であることが確実な場合):

    まず、MySQLの遅いクエリログをオンにすることができます:

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

    次に、$sess_use_databaseの場合 TRUEです セッションテーブルを最適化してみてください。オーバーヘッドが発生して問題が発生する可能性があります。

    それとは別に、私が考えることができる唯一の他のことは、DBサーバーに問題があるということです。 MySQLチューナーを実行して、状況を少し改善できるかどうかを確認してみてください。

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

    お役に立てば幸いです。

    FYI

    OPがsess_destroy()を実行するときに実行されるコードは次のとおりです。 (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. mysqlの日付とdate_formatの比較

    2. PDOにLIKEクエリを実装する

    3. プリペアドステートメントでワイルドカードのように使用する

    4. 結合が存在しないレコードを検索する