我有一個17GB的XML文件。我想將它存儲在MySQL中。我在PHP中使用xmlparser嘗試了它,但它說超過30秒的最大執行時間並且只插入幾行。我甚至嘗試過使用元素樹的python,但它佔用了大量的內存,給2 GB內存的筆記本電腦帶來了內存錯誤。請提出一些有效的方法。非常大的XML文件到MySQL
回答
您需要使用Python的xml.sax
或lxml.etree的iterparse()
。
這些是解析xml的「事件驅動」方法。您告訴解析器哪個「節點」要偵聽,並且每次找到該節點時都會觸發一個函數。
這將保持您的內存使用率非常低,並避免您收到的錯誤。
謝謝.. Python的xml.sax工作:) – shubhi1910
嘿,有沒有更快的方式,因爲它仍然在進行14小時以來。 – shubhi1910
磁盤/ xml不應該是瓶頸。我建議你測試它所花費的時間或讀取xml元素的速度以及從那裏調試。如果你在每一個陳述之後都承諾,那會讓事情變得緩慢。 –
我想說,關閉PHP的執行時間限制(例如使用CLI腳本)並保持耐心。如果你說它開始從一個17 GB的文件插入數據庫的東西,它實際上已經做得很好。沒有理由加快這種一次性工作。 (增加內存限制,以防萬一,默認128 Mb不是那麼多。)
- 1. .NET中的非常大的XML文件
- 2. 編輯非常大的xml文件
- 3. 非常大的XML文件生成
- 4. 查詢非常大的XML文件
- 5. 過程非常大的XML文件
- 6. 將非常大的XML文件(60GB)導入MySQL
- 7. Python xml ElementTree能解析一個非常大的xml文件嗎?
- 8. 解析一個非常大的文件到mysql
- 9. 非常大的CSV文件
- 10. PyInstaller非常大的文件大小
- 11. laravel app.js非常大的文件大小
- 12. 使用GWT讀取非常大的本地XML文件
- 13. 解析非常大的XML文件,並編組爲Java對象
- 14. 解析,處理和使用非常大的XML文件
- 15. 內存限制和非常大的XML文件
- 16. SAX解析器爲一個非常巨大的XML文件
- 17. 用XmlSlurper解析(非常)大型的XML文件
- 18. 如何解析C#中非常龐大的XML文件?
- 19. 用PHP下載一個非常大的XML文件
- 20. 導入非常大的SQL文件(MySQL)時的單次提交
- 21. Resharper與大或*非常*大文件
- 22. MySQL到XML文件
- 23. 的ffmpeg在非常大的文件
- 24. 在非常短的時間內連接非常大(〜TByte)文件
- 25. html to pdf非常大的文件php
- 26. AVAudioRecorder錄製非常大的m4a文件
- 27. 上傳非常大的文件(> 5GB)
- 28. PHP解壓縮非常大的文件
- 29. 非常大的jar文件和FAT32
- 30. 閱讀非常大的.xml.bz2文件
OMG ...這個文件是數據庫的轉儲嗎? 'о_0'我可能會建議使用['set_time_limit(0)'](http://php.net/set-time-limit)以某種方式解析它。 – BlitZ