PHP脚本中Array和MySQL结果集占用内存的简单测试

2014-11-24 17:42:04 · 作者: · 浏览: 0

php脚本运行时,数据都放在内存中,array mysql结果集是常用的数据类型,对这两种数据的内存占用情况作了简单的测试。


一下调研,使用memory_get_usage(true) 查看内存占用


对于array类型,keyvalue都为整数时,大小为1M的数组,占用内存约 136M,平均每条记录136字节。


对于array类型,key为整数,value为长度为128的字符串时,大小为1M的数组,占用内存约 288M,平均每条记录288字节。



从上面的测试来看,数组中增加一条记录,除了正常所需的数据存储外,需要额外的100字节来维护hash表信息。(zval存储整数约9字节?)


值得注意的是,mysql的结果集存储不能通过memory_get_usage函数看出来,也不计入php脚本的内存限制。在编写读取大数据的脚本时需要注意这个特性。


数据量方面,myIsam.MYD文件大小为1.2G时,结果集全部加在会超过4G