PHP PDO千萬行數據導出

需求:某項目數據量過大導致查詢時間急劇增大,因此需要按照表中某時間字段導出至文件夾。

思路:利用PHP PDO進行MySQL查詢,按照時間字段輸出至文件即可。

遇到的問題:

  • PHP Fatal error: Allowed memory size of ***** bytes

這個問題是由於PDO取回數據時使用了緩存,當數據量增大時便將PHP內存消耗完。設置PHP最大內存可在INI文件配置或者使用INI_SET函數。

可考慮通過對Select語句作WHERE限定以及使用不緩存的mysql_unbuffered_query函數來降低PHP內存消耗。

  • 創建文件夾時顯示無法創建

參考http://stackoverflow.com/questions/12311256/fopen-fails-to-open-stream-permission-denied-yet-permissions-should-be-valid/35428980#35428980

  • PHP導出數據亂碼?

暫末解決

  • 效率問題

多使用已建索引的行來提升查詢效率,可節約大量查詢時間。

查詢
時間消耗
以已建索引字段爲條件查詢,隨機取1000行數據 0.04 sec
以未建索引字段爲條件查詢,隨機取1000行數據 1min 34.99 sec

心得

PHP&MySQL雖然被大量使用,但是PHP在處理超大數據量時仍然顯得力不從心。

-----------------------------------------------------------------------------------------------------

允許自由轉載,但請尊重他人勞動成功,保留源地址。 
作者:onebraveman 
CSDN:http://blog.csdn.net/idc_void

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章