0

我想知道mysql_query/mysqli_querymysql_fetch_*/mysqli_fetch_*函数是如何工作的。mysql_query调用结果存储在哪里?是 MySQL 服务器还是 PHP 客户端?何时发生数据传输?

4

1 回答 1

1

它是 PHP 和 MySQL 服务器之间的合作。mysql*_query向服务器发送一个查询,提示它筛选其数据并组装一个结果集。这个结果集现在需要传输到 PHP,一次一行。

默认情况下,mysql*_query使用缓冲查询,这意味着它会尽快将数据一点一点地传输到 PHP。调用的时候mysql*_fetch*,你一行一行的读取这个数据。您还可以使用无缓冲查询,例如使用mysql_unbuffered_query. 这不会在后台传输数据,仅当您显式调用其中一个*fetch*函数时才会这样做。这在 PHP 端使用的内存较少,但速度较慢,并且反过来要求 SQL 服务器保留数据的时间比其他情况要长。

于 2013-08-22T08:02:23.087 回答