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 回答