php 將15W的資料寫入檔案

來源:互聯網
上載者:User

程式的邏輯
1,通過ftp下載300MB左右的檔案 資料大概是15W條左右
2,過濾欄位,重新寫入資料庫中
①,先將資料寫到檔案中
②,mysql使用load_data_infile 來插入資料

現在寫入檔案的程式邏輯:

讀取一行資料

然後過濾欄位,加入數組 到了1000條寫入資料庫

寫入資料有點慢....有什麼能加快速度嗎
補充下:整條資料有234個欄位

回複內容:

程式的邏輯
1,通過ftp下載300MB左右的檔案 資料大概是15W條左右
2,過濾欄位,重新寫入資料庫中
①,先將資料寫到檔案中
②,mysql使用load_data_infile 來插入資料

現在寫入檔案的程式邏輯:

讀取一行資料

然後過濾欄位,加入數組 到了1000條寫入資料庫

寫入資料有點慢....有什麼能加快速度嗎
補充下:整條資料有234個欄位

量也不大,寫檔案的部分沒有代碼,看不出來什麼問題,猜一下吧: 把 fopen 拿到迴圈外。

寫資料庫的話,插入的時候用事務。

插入的時候使用預存程序。

把檔案拆分成N個小的檔案,開N個php進程跑,不就快了?或者直接上java之類的支援多線程的程式跑。

為啥要在迴圈裡面iconv一下?直接放到外面的轉編碼不行嗎

話說,15W條資料,你組合成sql, 1W條一次的寫入,寫就幾秒鐘的時間,何必糾結搞什麼檔案再load_data_infile 呢?

按行操作實在太小氣了,如果檔案大小有上限的話,乾脆用file_get_contentsfile_put_contents來讀寫,效率會高很多。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.