PHP查询MySQL数据库里面指定的数据 (PHP查询MySQL海量数据内存占用分析)

文章编号:5883 更新时间:2024-02-02 分类:互联网资讯 阅读次数:

资讯内容

两个函数都调用了php_mysql_do_query()函数,只是第二个参数不同,分别是MYSQL_STORE_RESULT和MYSQL_USE_RESULT。

PHPMySQL数据库里面指定的数据P

为了解决这个问题,作者介绍了两个功能相似的函数:mysql_query和mysql_unbuffered_query。

因此,使用mysql_unbuffered_query执行一个返回大结果集的SQL语句时,在遍历结果之前,PHP的内存是不会被结果集占用的。

本文详细分析了PHP查询MySQL大量数据的内存占用问题,介绍了mysql_query和mysql_unbuffered_query函数的差异以及背后的原理,为读者提供了解决类似问题的思路和方法

前者会将结果集读取到客户端缓冲区,后者则不会。

这两个函数的区别在于,后者从MySQL服务器读取所有的结果集到客户端,而前者只读取结果集的元信息。

最后,文中提到使用mysql_unbuffered_query来避免直接内存占用。

如果在遍历过程中结果没有被PHP缓存(比如放在一个数组中),虽然操作了大量的数据,但是PHP占用的内存总是很小的。

作者首先想到的是MySQL是C/S模型,可能会将所有数据读到客户端缓冲区或者服务端的发送缓冲区,并且已经没有传送给客户端。

本文主要是分析了PHP查询MySQL返回大量结果时的内存占用问题,并涉及到了MySQL CAPI的使用。

这两个参数对应的是MySQL CAPI中的mysql_store_result和mysql_use_result函数。

接下来,文章介绍了这两个函数的实现差异。

文章首先提到了一个同事遇到的问题,即在一个项目中,MySQL查询返回的结果太多,导致PHP内存不足。

而使用mysql_query执行同样的语句时,内存占用会急剧增加,导致内存耗尽。

标签: PHP查询MySQL海量数据内存占用分析

本文地址: https://yihaiquanyi.com/article/be91eeb4e82a880b99fe.html

上一篇:北京网站制造公司排名北京网站制造PHP...
下一篇:北京网站制造公司排名北京网站制造30个很棒...

发表评论