程式的邏輯
1,通過ftp下載下傳300MB左右的檔案 資料大概是15W條左右
2,過濾字段,重新寫入資料庫中
①,先将資料寫到檔案中
②,mysql使用load_data_infile 來插入資料
現在寫入檔案的程式邏輯:
讀取一行資料
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIhNHesZlYvw1Ztl2Lc52YuAHaw5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
然後過濾字段,加入數組 到了1000條寫入資料庫
寫入資料有點慢....有什麼能加快速度嗎
補充下:整條資料有234個字段
回複内容:
程式的邏輯
1,通過ftp下載下傳300MB左右的檔案 資料大概是15W條左右
2,過濾字段,重新寫入資料庫中
①,先将資料寫到檔案中
②,mysql使用load_data_infile 來插入資料
現在寫入檔案的程式邏輯:
讀取一行資料
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIhNHesZlYvw1Ztl2Lc52YuAHaw5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
然後過濾字段,加入數組 到了1000條寫入資料庫
寫入資料有點慢....有什麼能加快速度嗎
補充下:整條資料有234個字段
量也不大,寫檔案的部分沒有代碼,看不出來什麼問題,猜一下吧: 把 fopen 拿到循環外。
寫資料庫的話,插入的時候用事務。
插入的時候使用存儲過程。
把檔案拆分成N個小的檔案,開N個php程序跑,不就快了?或者直接上java之類的支援多線程的程式跑。
為啥要在循環裡面iconv一下?直接放到外面的轉編碼不行嗎
話說,15W條資料,你組合成sql, 1W條一次的寫入,寫就幾秒鐘的時間,何必糾結搞什麼檔案再load_data_infile 呢?
按行操作實在太小氣了,如果檔案大小有上限的話,幹脆用file_get_contents 和 file_put_contents來讀寫,效率會高很多。
相關标簽:php
本文原創釋出php中文網,轉載請注明出處,感謝您的尊重!