搜尋

首頁  >  問答  >  主體

用php處理一個超大sqlite檔(幾十G),有什麼好方法?

用php處理一個超大sqlite檔(幾十G),有什麼好方法?
處理的時候 直接死了~~

PHP中文网PHP中文网2749 天前667

全部回覆(9)我來回復

  • ringa_lee

    ringa_lee2017-05-16 13:06:33

    這麼大的檔案PHP肯定是處理不了的,PHP處理檔首先要把它讀到記憶體中,而每個腳本能夠使用的記憶體跟PHP設定檔中的memory_limit是相關的。只要你記憶體夠大,你可以設定它為不受限制,就能夠使用系統的最大記憶體。

    推薦的解決方法是先把檔案切小,透過shell程式例如sed把文件以一定大小(大小依你的PHP記憶體大小決定)切割成若干個小文件,再用PHP處理。

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:06:33

    逐行讀取,php有這個函數,每次讀取3行,但是sqlite 是本地數據庫,讀取是驅動的事情吧,和php沒多大關係吧,別一次性全打印就行了吧

    回覆
    0
  • 阿神

    阿神2017-05-16 13:06:33

    應該把資料轉到MYSQL再提供給PHP讀寫。 sqlite本來是個小巧的文件資料庫,處理龐大資料的能力低。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:06:33

    震驚!這麼大的資料量居然還用sqlite。
    再說你一次把幾十G讀到內存,除非你的內存真的有幾十G,否則一定爆內存。
    建議嘗試分割這個資料庫或轉換成其他類型的資料庫處理。

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:06:33

    PHP對文字的處理並不理想,很慢的。 入mysql後在做處理的方案是可行的,就是比較耗時。

    參考 用它來查吧

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:06:33

    不懂sqlite 但是這麼大的檔案直接處理一定很難。但是大體上有一個思路。就是拆解。按照庫啊。表啊什麼的。

    回覆
    0
  • 高洛峰

    高洛峰2017-05-16 13:06:33

    既然是sqlite文件,那就按資料庫讀取->處理->儲存就可以了,php預設能直接使用sqlite.

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:06:33

    sqlite轉Mysql吧,然後優化索引,應該沒啥問題了。

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:06:33

    參考一下這貨

    回覆
    0
  • 取消回覆