PHP脚本中Array和MySQL结果集占用内存的简单测试
php脚本运行时,数据都放在内存中,array 和mysql结果集是常用的数据类型,对这两种数据的内存占用情况作了简单的测试。
一下调研,使用memory_get_usage(true) 查看内存占用
对于array类型,key和value都为整数时,大小为1M的数组,占用内存约 136M,平均每条记录136字节。
对于array类型,key为整数,value为长度为128的字符串时,大小为1M的数组,占用内存约 288M,平均每条记录288字节。
| key类型 | value类型 | 数组大小 | 占用内存 | 平均 | 
| int | int | 1M | 136M | 136 | 
| int | string(4) | 1M | 168M | 168 | 
| int | string(128) | 1M | 288M | 288 | 
| string(16) | int | 1M | 152M | 152 | 
| 
 | 
 | 
 | 
 | 
 | 
从上面的测试来看,数组中增加一条记录,除了正常所需的数据存储外,需要额外的约100字节来维护hash表信息。(zval存储整数约9字节?)
值得注意的是,mysql的结果集存储不能通过memory_get_usage函数看出来,也不计入php脚本的内存限制。在编写读取大数据的脚本时需要注意这个特性。
数据量方��,myIsam中.MYD文件大小为1.2G时,结果集全部加在会超过4G。
相关推荐
  TuxedoLinux    2020-09-11  
   maxelliot    2020-06-28  
   chichichi0    2020-06-10  
   today0    2020-06-08  
   higheels    2020-06-03  
   ITstudied    2020-05-12  
   xiechao000    2020-05-03  
   测试自动化顾问    2020-05-01  
   goodby    2020-04-30  
   today0    2020-04-22  
   jszy    2020-04-20  
   lucialee    2020-02-23  
   luanyu    2020-02-18  
   goodby    2020-01-05  
   mohanzb    2019-12-21  
   jszy    2019-12-14  
 