使用MYSQLI_USE_RESULT时未读取所有数据时,mysqli_free_result()速度很慢

时间:2018-11-16 06:46:00

标签: php mysql optimization mysqli database-performance

我正在使用MYSQLI_USE_RESULT(无缓冲查询),同时从表中查询大量数据。 为了进行测试,我使用了5.6 GB大小的表。 我选择了所有列Select * from test_table

如果我没有使用fetch_assoc()等方法读取任何行,则尝试使用mysqli_free_result()关闭结果。关闭它需要5到10秒。

有时我会根据可用内存读取所需的行数。然后我打电话给mysqli_free_result(),与不读取一行相比,它花费的时间更少。

因此,未读行更少,意味着释放结果的时间更少。更多未读行有更多时间释放结果。

据我所知,没有记录在案的功能会消耗时间。

查询时间约为0.0008秒。

是错误还是预期的行为? 对我来说,这种呆滞用MYSQLI_USE_RESULT击败了整个观点。

  

MySQL v5.7.21,PHP v7.2.4用于测试。

此功能的别名为mysqli_result::free-mysqli_result::close-mysqli_result::free_result-mysqli_free_result

0 个答案:

没有答案