我工作上有一個需求
就是要將有點大的txt檔案,大概1gb
沒有重開機常常要七八個鐘頭
重開機大概只要三個鐘頭
轉入資料庫裡面
每次轉之前我也會先刪掉舊的資料再插入
也沒有設定什麼不必要的index
但我發現每次只要重開機
轉檔案入庫的速度就會快很多
我是用java寫的
我想也有自動回收機制
不確定是不是因為內存洩漏還是滿了
才會導致重開機就ok
想問有什麼方法可以知道程式是哪裡寫不好
才會一樣的寫法
重開機就會變快
-----
Sent from MeowPtt on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.163.89 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1740132615.A.413.htmljej1樓檔案從哪來?是隨時隨地一直寫,一天寫入一次嗎? 02/21 18:32
→ jej2樓解法很多種,但問題敘述不足 02/21 18:32
→ jej3樓例如資料庫如果是oracle,也可以考慮SQL loader 02/21 18:32
→ jej4樓或是用splunk收,在處理到資料庫 02/21 18:32
→ 本人5樓檔案是別人丟過來的,一天丟一次,寫好才丟過來 資 02/21 18:48
→ 本人6樓料庫是MSSQL 02/21 18:48
ILoveAMD7樓mysql也有直接從檔案匯入的介面 02/21 19:17
→ MOONY1358樓每處理多大檔案就計時 02/21 19:49
→ MOONY1359樓一天一個檔 一個檔1gb? 感覺請對方直接整理成csv你手動 02/21 19:51
→ MOONY13510樓import馬上就結束了 02/21 19:51
zonppp11樓txt 1gb...寫那麼大幹嘛? 02/21 20:10
→ BlacksPig12樓一筆資料就1gb? 02/21 20:20
→ 本人13樓一個月丟一次,為何那麼大因為是客戶基本資料 02/21 20:44
ILoveAMD14樓mysqlimport 指令查一下 02/21 20:53
jej15樓如果是已經整理好的客戶資料 02/21 21:09
→ jej16樓用load data infile或是mtsqlimport 02/21 21:09
→ jej17樓會比你與java快十倍以上 02/21 21:09
→ 本人18樓不是一筆資料1gb,是一個檔案1gb,一個檔案大概300w 02/21 21:27
→ 本人19樓筆資料吧 02/21 21:27
→ 本人20樓他們可能不願意弄成csv方式很傳統是用定義第幾個by 02/21 21:28
→ 本人21樓te到第幾個byte是第一個欄位,然後第幾個到第幾個 02/21 21:28
→ 本人22樓是第二個欄位這樣 02/21 21:28
→ kkkoooiii223樓開機時間拉長其他程式吃記憶體導致執行時吃了 swap? 02/21 21:30
→ kkkoooiii224樓對 memory leak 有疑慮執行時就監看一下啊 02/21 21:32
→ superpandal25樓指令寫的好都不會這麼慢 02/21 22:40
B098869808826樓內存是什麼 02/21 22:46
→ MoonCode27樓重開機這麼快 就寫個重開機的腳本不就好了 02/21 22:46
ILoveAMD28樓固定長度更簡單 先awk 再import 去拉個屎就差不多了 02/21 22:46
→ Apache29樓profiler 直接開起來看bottleneck在哪裡啊== 02/21 22:58
→ burgess30樓去瞭解jvm記憶體的部分 02/21 23:46