0

一部のページに大きなクエリがあります (行に約 30 フィールド)。mysql_free_result はメモリ パフォーマンスを向上させると聞きました。では、どうすれば mysql_free_result を適切に使用できるのでしょうか。

私はクラスでこれが好きでした:

    // buffered query

    private function query($queryStr)
    {
        $this->querycount++;
        $starttime = microtime();

        $this->queryRes = mysql_query($queryStr, $this->conn);
        $this->querytime = $this->querytime + (microtime() - $starttime);

        if ($this->queryRes)
        {
            $this->query_log($queryStr,$this->querytime);
        }
        else
        {
            $this->error("SQL ERROR: " . $queryStr);
        }
        return $this->queryRes;
        $this->free_result($this->queryRes);
    }

    // free result

    public function free_result($result)
    {
        mysql_free_result($result);
    }

これは本当ですか?そうでない場合、どうすれば適切に使用できますか?

4

2 に答える 2

1

mysql_free_result() は、大きな結果セットを返すクエリにどれだけのメモリが使用されているかを懸念している場合にのみ呼び出す必要があります。

関連するすべての結果メモリは、スクリプトの実行の最後に自動的に解放されます。

あなたの場合、関数が戻っ$this->queryRes;てきて次のステップに到達しないため、うまく見えません。

于 2013-05-08T13:28:20.287 に答える
0

mysql_free_result を適切に使用するにはどうすればよいですか。

使用しないでください。

于 2013-05-08T13:29:10.607 に答える