`

php按照查询条件大数据量进行导出,如果进行有效率导出

 
阅读更多

对php来说将一些配置信息数组保存到文件中是司空见惯的情况,就我目前所知,有以下几种保存方法

  1. 直接用var_export写成return array(...);的php代码,然后读取的时候用require解析即可。
  2. 使用serialize函数序列化一个数组,然后读取的时候用unserialize反序列化
  3. 使用json_encode序列化一个数组,然后读取的时候用json_decode反序列化
  4. 使用其它的文件格式,比如yaml或者ini

 

由于用到了比较多的数组,所以想搞清楚php的array和session的容量到底有多大,其实主要是想验证一下之前我听说的array的容量是跟配置有关这一说法的正确性。

array的验证代码程序:

$arr=array();//这一行可以省去的,我是比较奉行java中的先声明后使用原则
        for ($i=0;$i<8000000;$i++){
              $arr[$i]=$i;
        }

echo count($arr);
       unset($arr);

session的验证代码程序:

ession_start(); 
       for ($i=0;$i<8000000;$i++){
              $_SESSION[$i]=$i;
       } 

echo count($_SESSION);

运行上面的程序后,会出现下面的错误提示:

注:此时我php.ini中memory_limit值的配置是10M

然后 接下来我的验证方法是把php.ini中memory_limit的值改为1000M,然重启apache,再次运行上面的验证程序,则可以正常输出array和session的大小值。

难道不是我修改了php.ini的原因,是其他巧合问题导致的正常?我要再次验证一下是不是php.ini中memory_limit配置的原因,我把该值重新配置为10M,重启apache后,然后再次运行上面的验证程序,结果的确又报上面的内存不足异常了。现在我相信了array和session的容量大小的确是跟php.ini中memory_limit的配置有关的。
不过我最大的一次配置该值的大小为1300M,运行验证程序后我的电脑几乎处于休眠状态,呵呵,下面是性能占用图:

 

在excel导出,大量数据按查询条件导出,我想到了session和文件存储按查询导出的数据。

如果按照session导出,我当初想到如果直接将最终查询sql存放在session中,但是在导出时候,仍然需要跟数据库交互,数据量太大,还是影响读取速度,对用户不是很友好,所以我想到将查询获取的数组放在数组存放在session中,经过上述测试是不可取的。

最终我想到将查询获取的数组以json形式存放在文件中,在导出进行读取,直接处理数组,结果方法是可行的。

当然也可以借助其他语言进行导出,比如python进行导出,效率还是不错的。

以上仅为我的个人验证观点,仅为分享使用,验证方法肯定存在不足,所以请大家指导,非常感谢,

分享到:
评论

相关推荐

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150 实例120 计算查询操作的执行时间 151 实例121 查询关键字描红 152 实例122 判断上传文件的类型 153 实例123 判断邮政编码格式是否正确 154 2.10 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150 实例120 计算查询操作的执行时间 151 实例121 查询关键字描红 152 实例122 判断上传文件的类型 153 实例123 判断邮政编码格式是否正确 154 2.10 ...

    智能水表远程抄表(智能水表抄表系统方案).pdf

    DATA86 智能水表远程抄表(智能水表抄表系统方案)综合管理软件—地图展示界面 报警处理页面可以根据相关条件进行报警数据查询,数据区显示每条报警的详细信息, 点击这里可以填写报警的故障原因以及核查结果。...

    速卖通数据分析.pptx

    经营数据 统计日期店铺星级成交总额回头成交额占比 成交排名转化率网站平均转化访客数买家数 下单数支付成功订单客单价曝光量商品页浏览量 商品页访客数活跃访客询盘人数在架产品好评率 速卖通数据分析全文共43页,...

    爱站SEO工具包 v1.11.12.0.zip

    他能够有效的监控网站的SEO状况,分析网站在各大搜索引擎上的排名变化趋势,分析网站关键词在搜索引擎的排名表现,智能诊断出网站SEO出现的问题,快速实现关键词及其长尾词的挖掘和网站日志分析,SEO综合查询,链接...

    软件测试黑盒测试 方法大全

    5)系统能够承受何种数据率和数据量? 6)特定类型的数据组合会对系统产生何种影响? 运用黑盒测试方法,可以导出满足以下标准的测试用例集: 1)所设计的测试用例能够减少达到合理测试所需的附加测试用例数; 2)所...

    模拟版图Skill基础教程.pdf

    • 学习一门编程语言,最大的意义不在于语言本身能做什么,而是通过一门语言学习和运用,改变思维的方式,把一件事情或是一个问题抽象化,用一种标准客观的方式描述它,不断地思考如何更有效率的做事 • 本教程假定...

    毕设源码-VB绩效评价管理系统设计(源代码+系统+答辩PPT).rar

    该系统旨在帮助企业或组织有效地进行员工绩效评估、数据管理和分析,从而提高员工的工作效率和整体组织绩效。 系统特点: 1. **用户友好的界面**:采用直观的图形化界面设计,方便用户快速上手,进行绩效数据的...

    学校学生考勤刷卡管理系统功能说明文档

    [学校学生考勤刷卡管理系统,校园一卡通解决方案产品软件] ...该模块能有效管理学员考勤、考勤管理方便、支持数据报表和导出。与学校日常办公紧密结合,学员只要在上下班时,在系统打卡,即可进行考勤管理。

    毕业生就业信息.zip

    9. 数据导出:允许用户将数据导出为CSV、Excel等格式以便进一步分析。 综上所述,《毕业生就业信息.zip》提供的资源可以帮助相关人员更好地理解毕业生的就业情况,从而做出更有根据的决策,改进教育和培训项目,并...

    BFC采集器4.5正式版

    每个用户可以设定自己所特有的字段类型信息(只针对该用户有效),从而发出具有每个用户特色的信息(即使数据是从同一个网站采集来的)。用户数量没有限制。 · 针对单个资源网站的自定义元素信息,包括:替换...

    立方酒店管理系统 (大型代码)

    关于“餐饮管理系统中菜单定义”:“末级”字段是为了区分菜单分类,如果是大类,请录入空,如果是最终末级菜单,请录入“*”。关于“房态刷新”按钮:“刷新”是为了调用服务器中当前的最新数据,建议用户在模块中...

    asp在线投票系统设计

    在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量...

    在线投票系统-asp.net

    在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量...

    AccessPort串口调试工具

    串口调试:支持常用的串口操作功能,支持大数据量的收发、保存,支持自动发送。 3).动态变参:在不改变当前所打开端口的情况下,能动态改变端口参数(如:波特率、校验位、流控制等)。 4).双模编辑:数据发送区内...

    因特达crm2009客户关系管理系统 v2009.07.12.rar

    高度的数据稳定性,平台使用Microsoft SQL Server数据库,数据库稳定可靠、安全,对于业务数据量大、稳定性要求高、操作终端多的用户尤其适合。 14、完善的进、销、存管理及分析功能 完善的进、销、存管理及分析...

    云梯端通用crm

    高度的数据稳定性,平台使用Microsoft SQL Server数据库,数据库稳定可靠、安全,对于业务数据量大、稳定性要求高、操作终端多的用户尤其适合。 14、完善的进、销、存管理及分析功能 完善的进、销、存管理及分析...

    因特达进销存scm2010 v20110302.rar

    高度的数据稳定性,平台使用Microsoft SQL Server数据库,数据库稳定可靠、安全,对于业务数据量大、稳定性要求高、操作终端多的用户尤其适合。 14、完善的进、销、存管理及分析功能 完善的进、销、存管理及分析...

    因特达进销存scm2013 build20130604.rar

    高度的数据稳定性,**台使用Microsoft SQL Server数据库,数据库稳定可靠、安全,对于业务数据量大、稳定性要求高、操作终端多的用户尤其适合。 14、完善的进、销、存管理及分析功能 完善的进、销、存管理及分析...

Global site tag (gtag.js) - Google Analytics