我想知道mysql_query
/ mysqli_query
和mysql_fetch_*
/ mysqli_fetch_*
函数是如何运作的。 mysql_query
调用的结果存储在哪里?是MySQL服务器还是PHP客户端?何时发生数据传输?
答案 0 :(得分:1)
这是PHP和MySQL服务器之间的合作。 mysql*_query
向服务器发送一个查询,提示它筛选其数据并汇编结果集。现在需要将此结果集转移到PHP,一次一行。
默认情况下,mysql*_query
使用缓冲查询,这意味着它会尽快将数据传输到PHP。在调用mysql*_fetch*
时,您会逐个读取这一数据。您还可以使用无缓冲查询,例如使用mysql_unbuffered_query
。这不会在后台传输数据,只有在您明确调用其中一个*fetch*
函数时才会这样做。这在PHP方面使用较少的内存,但速度较慢,反过来要求SQL服务器保留数据的时间比其他方式更长。