上禮拜剛從研究所老闆那邊接手一份工作過來,
內容大概是這樣子的,
要處理研究所學長當初建的論文檢索系統,一些 error data 的 lose value 回復
學長是有建議要不要整個重抓
可是苦於程式部分可能修改完後不知道還有哪裡錯,
所以決定用既有的 DB table 去補足這些 error data lose value
剛開始以為很簡單,就是簡單的 join 比對咩
所以假日晚上想說這很快就可以解決了,把 code 大致寫好後,
嘿嘿嘿,準備啟動了!
耶耶? o_0?
怎麼畫面一直出不來?我程式寫錯了嗎?
想說不會吧!重新寫了一個比較小的程式去叫資料庫,竟然也花了 30 秒!
耶耶?
怎可能花這麼久呢? o_0?
跑去問了一下專家們,
專家給我建議是你要不要寫行隨時看看程式跑到哪,
接受專家的建議改了一下程式下去跑之後才發現,我的程式沒有錯,
只是資料量太大了!
如果要算我程式的 big-O ,那大概是 10*10w*40w 囧>?
於是到這邊我就開始在想,不會是我演算法寫的太爛吧?
之前都是自己寫資料庫自己玩一玩,沒碰過大資料
如果到外面大公司那麼多的資料可能比這更多,還是跑這麼慢怎辦?
於是又開始問專家們意見,
專家跟我說要不要整個 table 砍掉重練,
可能是 table structure 當初建得不好。
也有建議要不要用 hash 概念來做
受惠還滿多的,
不過想到說這樣大工程不適合自己一下子馬上動手改,
還是跟老闆商量看看好了,
沒想到老闆提出倒回來的想法,
big-O 馬上變成 10w*10w
真是天壤之別,雖然說還是很大 囧>"
可是比我那爛方法快上整整 40 倍,
又上了一課了!我果然是嫩逼! XD"
內容大概是這樣子的,
要處理研究所學長當初建的論文檢索系統,一些 error data 的 lose value 回復
學長是有建議要不要整個重抓
可是苦於程式部分可能修改完後不知道還有哪裡錯,
所以決定用既有的 DB table 去補足這些 error data lose value
剛開始以為很簡單,就是簡單的 join 比對咩
所以假日晚上想說這很快就可以解決了,把 code 大致寫好後,
嘿嘿嘿,準備啟動了!
耶耶? o_0?
怎麼畫面一直出不來?我程式寫錯了嗎?
想說不會吧!重新寫了一個比較小的程式去叫資料庫,竟然也花了 30 秒!
耶耶?
怎可能花這麼久呢? o_0?
跑去問了一下專家們,
專家給我建議是你要不要寫行隨時看看程式跑到哪,
接受專家的建議改了一下程式下去跑之後才發現,我的程式沒有錯,
只是資料量太大了!
如果要算我程式的 big-O ,那大概是 10*10w*40w 囧>?
於是到這邊我就開始在想,不會是我演算法寫的太爛吧?
之前都是自己寫資料庫自己玩一玩,沒碰過大資料
如果到外面大公司那麼多的資料可能比這更多,還是跑這麼慢怎辦?
於是又開始問專家們意見,
專家跟我說要不要整個 table 砍掉重練,
可能是 table structure 當初建得不好。
也有建議要不要用 hash 概念來做
受惠還滿多的,
不過想到說這樣大工程不適合自己一下子馬上動手改,
還是跟老闆商量看看好了,
沒想到老闆提出倒回來的想法,
big-O 馬上變成 10w*10w
真是天壤之別,雖然說還是很大 囧>"
可是比我那爛方法快上整整 40 倍,
又上了一課了!我果然是嫩逼! XD"
留言
張貼留言