需求:某項目數據量過大導致查詢時間急劇增大,因此需要按照表中某時間字段導出至文件夾。
思路:利用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