PHP 操作大对象 数组如何节省内存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 操作大对象 数组如何节省内存相关的知识,希望对你有一定的参考价值。

请问,群内的高手,一个20M的 txt 文本文件大约37万条记录,现在要读到php 数组中。有没有什么本地缓存的方法,每次,读取很浪费内存。

参考技术A 20M你要读到数组中,如果你不清楚要用到里面哪些数据,并且你的数据比较规律的话,你可以把这20M切开不同个小文件,再根据你在程序中要用的数据来做判断是载入哪个文件,比如你这20M文件都有一个索引id,1,2,3,4,5....你可以把这20M文件的数据id为1-1000的存到一个文件里,1001-2000存到另一个文件里,你在用时根据要用到的id判断载入哪个文件,这只是个思路,具体要看你的数据是个什么样的,能不能满足切开放的条件 参考技术B 你是要一次性读到php中?如果是的话,那是没有好的办法的,无法怎么读进来都是需要那么多内存的。
如果不是一次性,那就是根据需要读取,那就通过数据库或者用fseek定位到文件指定位置开始读取。
参考技术C mysql,然后配合运维吧。如果大数据量,当然考虑分表分库。数组是解决不了问题的,textdb又有瓶颈,mysql是必然首选。当然也根据你写的代码的质量有关系咯。如果不能用数据库的话,性能方面可以参考一下ofstar,数据库的话可以参考phpwind,都是你的学习对象。 参考技术D 建个数据库吧,把数据存到数据库里面去。。。

以上是关于PHP 操作大对象 数组如何节省内存的主要内容,如果未能解决你的问题,请参考以下文章

PDO操作大数据对象

PHP字符串操作大集合

如何优化操作大数据量数据库

java 读写操作大文件 BufferedReader和RandomAccessFile

PHP内存泄漏分析定位

PHP内存泄漏分析定位