需求:某项目数据量过大导致查询时间急剧增大,因此需要按照表中某时间字段导出至文件夹。
思路:利用PHP PDO进行MySQL查询,按照时间字段输出至文件即可。
遇到的问题:
- PHP Fatal error: Allowed memory size of ***** bytes
这个问题是由于PDO取回数据时使用了缓存,当数据量增大时便将PHP内存消耗完。设置PHP最大内存可在INI文件配置或者使用INI_SET函数。
可考虑通过对Select语句作WHERE限定以及使用不缓存的mysql_unbuffered_query函数来降低PHP内存消耗。
- 创建文件夹时显示无法创建
- PHP导出数据乱码?
暂末解决
- 效率问题
多使用已建索引的行来提升查询效率,可节约大量查询时间。
查询
|
时间消耗
|
---|---|
以已建索引字段为条件查询,随机取1000行数据 | 0.04 sec |
以未建索引字段为条件查询,随机取1000行数据 | 1min 34.99 sec |
心得
PHP&MySQL虽然被大量使用,但是PHP在处理超大数据量时仍然显得力不从心。
-----------------------------------------------------------------------------------------------------
允许自由转载,但请尊重他人劳动成功,保留源地址。
作者:onebraveman
CSDN:http://blog.csdn.net/idc_void