mysql(i)_query和mysql(i)_fetch_ *的内部工作原理

时间:2013-08-22 07:33:22

标签: php mysql

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

1 个答案:

答案 0 :(得分:1)

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

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