看板 PHP 關於我們 聯絡資訊
※ 引述《dj31416 (失望帶點絕望)》之銘言: : 我是自學PHP的新手 : 程式流程大約 : 是 : 迴圈(1.更新a資料表最後一筆資料->2.取出全部資料全部寫入b資料表->計算->輸出-> : 刪除b資料表) : 如此重複大約一千次 資料數約一千筆 : 這樣要花掉大約10分鐘的時間 : 若不做資料表更新 單純取出資料表b所有資料計算一千次 卻非常快速 : 本來以為是輸出的問題 但取消所有的輸出 只有做計算 時間也差不多 : 不知道是不是更新(寫入)資料庫很耗時間 想知道有沒有解決的方法 : 謝謝 :) 我覺得可以看的地方 1. 更新的部分 搜尋有沒有根據索引之類的 2. 寫入的部分是一次寫入1000筆還是1000次1筆 根據我之前看官方的文件 1百萬筆資料 一次輸入一筆 改成一次輸入16筆 時間可以從765秒衝到50秒 關鍵字: Batching operations 另外有點不太懂 後面計算的部分是在計算哪個資料表的資料 a更新完後 直接拿出a表的資料作計算就好啦? 為什麼會用到b資料表? 因為看起來你的b資料表好像沒啥用.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.66.139
dj31416:謝謝原po的關鍵字 我是一千次一筆 資料表b是逐筆寫入 08/11 04:17
dj31416:資料表a的計算結果 最後再利用資料表b的數據 再做一次計 08/11 04:18
dj31416:算 不知道這樣處理正不正確 因為資料表a是讀取csv寫入的 08/11 04:19
dj31416:的原始data 一方面想說不要去更動 才有寫入另一資料表(b) 08/11 04:19
dj31416:的想法 08/11 04:19
LaPass:CSV!? ( ̄□ ̄|||)a 怎麼會有這個東西? 08/11 04:21
dj31416:Opps!! 我還以為自己打錯字 可是我的檔案是.csv沒錯耶yo! 08/11 04:25
dj31416:讀取csv寫入資料表a 很快 就是後面的計算再寫入 要等好久 08/11 04:27
LaPass:因為一開始會認為你是連線到資料庫去作操作,但現在看起來 08/11 04:28
LaPass:,好像是用PHP讀取檔案來作計算的樣子? 08/11 04:28
carlcarl:為什麼不直接拿a的計算結果直接再做一次計算? 08/11 04:29
dj31416:喔喔不不! 那個在計算前就已經都做好了 我分兩步做 08/11 04:30
carlcarl:而要存到b之後再讀出來再做一次計算? 08/11 04:30
dj31416:所以應該是連線到資料庫因為我一直輸入mysql_query:)是嗎? 08/11 04:30
dj31416:對 要用b記錄的結果 再做一次計算 08/11 04:31
carlcarl:可是你b的資料表不就是從a的計算結果來的嗎 08/11 04:38
carlcarl:那為何不乾脆用php計算完a的計算結果後 再算一次就好? 08/11 04:39
dj31416:對耶! 我怎麼轉不過來! 先存入array再全部一次寫入 應 08/11 04:51
dj31416:該就會快多了 好興奮喔!! :D 08/11 04:51