Welcome 微信登录

首页 / 数据库 / MySQL / 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类型数组大小占用内存平均
intint1M136M136
intstring(4)1M168M168
intstring(128)1M288M288
string(16)int1M152M152
     
 从上面的测试来看,数组中增加一条记录,除了正常所需的数据存储外,需要额外的约100字节来维护hash表信息。(zval存储整数约9字节?) 值得注意的是,mysql的结果集存储不能通过memory_get_usage函数看出来,也不计入php脚本的内存限制。在编写读取大数据的脚本时需要注意这个特性。数据量方??,myIsam中.MYD文件大小为1.2G时,结果集全部加在会超过4G。Linux/Unix下ODBC的安装配置摘记MySQL安全配置文档相关资讯      mysql 
  • 数据库服务器 MySQL  (08/15/2013 06:50:23)
  • MySQL 5.6 GA 及逃亡潮  (02/08/2013 14:36:35)
  • MySQL 5.5.22、5.1.62、5.0.96全线  (03/22/2012 19:03:49)
  • MySQL Administrator连接VMWare下  (05/24/2013 09:20:58)
  • MySQL 5.1.68 发布  (02/05/2013 08:37:47)
  • CentOS 5.2+MySQL+Heartbeat双机互  (01/29/2012 11:16:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数