释放数据库内存php,内存存放数据-成都快上网建站

释放数据库内存php,内存存放数据

如何解决PHP查询大量数据内存耗尽的问题

这个问题在PHP的官方网站上叫缓冲查询和非缓冲查询(Buffered and Unbuffered queries)。PHP的查询缺省模式是缓冲模式。也就是说,查询数据结果会一次全部提取到内存里供PHP程序处理。这样给了PHP程序额外的功能,比如说,计算行数,将指针指向某一行等。更重要的是程序可以对数据集反复进行二次查询和过滤等操作。但这种缓冲查询模式的缺陷就是消耗内存,也就是用空间换速度。

在原阳等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、成都网站设计 网站设计制作定制网站建设,公司网站建设,企业网站建设,品牌网站制作,成都营销网站建设,成都外贸网站建设,原阳网站建设费用合理。

相对的,另外一种PHP查询模式是非缓冲查询,数据库服务器会一条一条的返回数据,而不是一次全部返回,这样的结果就是PHP程序消耗较少的内存,但却增加了数据库服务器的压力,因为数据库会一直等待PHP来取数据,一直到数据全部取完。

很显然,缓冲查询模式适用于小数据量查询,而非缓冲查询适应于大数据量查询。

php 在类中如何释放内存。

你的方法没有错,可是你说读取90W条数据,你读取的时候它就已经是占用着内存了,你应该循环小批量读取,每次循环结束都销毁本次循环的变量。但同时提醒你两点:

1、unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。

2、只有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存。

如何解决PHP里大量数据循环时内存耗尽的问题

?php

mysql_connect("localhost", "mysql_user", "mysql_password") or

die("Could not connect: " . mysql_error());//连接你的数据库

mysql_select_db("mydb");//选择你的数据库

$result = mysql_query("SELECT `name` FROM data_boy WHERE `id`='2' LIMIT 0, 60");//执行SQL查询语句,搜索出60条数据

while ($row = mysql_fetch_array($result)) {

echo "姓名:".$row[name]."br";

/*补充一句,此处也可以是:

echo "姓名:".$row[0]."br";此处"mysql_fetch_array"默认返回的既有 关联数组(字段作为键名),也有数字索引数组*/

}

mysql_free_result($result);//释放结果


本文标题:释放数据库内存php,内存存放数据
本文链接:http://kswjz.com/article/dssocij.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流