跳到主要內容

演算法與資料庫的拉鋸戰

上禮拜剛從研究所老闆那邊接手一份工作過來,
內容大概是這樣子的,
要處理研究所學長當初建的論文檢索系統,一些 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"

留言

這個網誌中的熱門文章

杉林國小數位教學

這是上了研究所所修習的一門課,老師希望我們到偏遠地區的國小, 運用我們所學教那邊的小孩子,減少數位落差, 而我們那天的目的地則是位於旗山鎮杉林鄉的杉林國小。 要說到杉林國小之前,先來說說它的歷史, 杉林村隔壁村是木梓村,同樣也有一間木梓國小, 但是木梓國小由於人數不足的關係,已於幾年前跟杉林國小併校, 木梓村的小孩每天都會由校長開車到該村莊接受,全程來回四公里左右。 杉林國小會不會也有人數不足面臨被併校的危機? 答案是不會的! 由於地理以及族群的因素,使得杉林國小有基本的學生人員, 楠梓仙溪一隔隔出了不止地理上的界線,也隔出了兩個族群間的隔閡, 客家子弟不會到杉林村的閩南小學上課, The same,杉林村跟木梓村的小孩也不會到上平國小上課, 但是偏偏客家卻是杉林鄉的大宗! 所以一河之隔,杉林村與木梓村似乎變成少數的閩南族群。 不過這邊的居民對於杉林國小的客家老師倒是出乎我們意料的客氣。 杉林村跟上平雖然只隔著一條楠梓仙溪,卻是兩個不同的世界, 如果上坪的房子建設跟都市差了有十年的時光以上, 那麼杉林可能就是二三十年前的台灣早期農業社會。 在杉林村住家幾乎看不到所謂的透天樓房,如果看到有樓房的, 就可以稱得上當地的有錢人,聽聞校長講, 有學生的住家進去還不是平常我們所看到的水泥地,而是一堆爛泥巴堆砌而成的地面。 這裡是一個看不見未來的村落! 不僅土壤呈現酸性一年四季只有一季可以收成, 就連緊靠楠梓仙溪也探不得地下水源,這邊的家庭只要沒有耕作就沒有基本收入, 錢大多都是靠著打零工而來。 但打零工來的錢卻鮮少花在孩子的教育上,不是都拿去買酒就是買檳榔,甚至是毒品! 這裡的人拜訪時大多都有一個相同的特徵,一口的血色以及發黃稀疏的牙齒。 前陣子還有高捷有工人缺可以接接臨時的粗工,現在高捷完成了, 這邊的失業率是另一個問題的開始。 數位教學的過程中,接觸小朋友天真卻又現實殘酷的跟我們說, 我爸媽都說讀到大學都不一定找得到工作了!那為啥要繼續唸書唸上去呢? 這邊不是沒有學習的楷模,只是這樣的榜樣太少了, 少到讓他們覺得人生一輩子就是這麼過下去了! 杉林村跟木梓村兩個村莊合起來 1747 人,只有兩位學習的楷模, 一位目前任教於高師大擔任助理教授,一位是旗山分局的局長。 公車這裡一天只來二至四個班次,但對於這邊的人可能連車錢都是個負擔。 曾有一段颱風時間,杉林大橋被河水沖斷, 這...

英丰寶面試 2010.02.22

過年前接到英丰寶公司的研發替代役面試通知, 我自己是求職網站投履歷表到公司去的。 跟面試通知的小姐確認要過去面試後, 小姐就寄信叫我準備當天要報告的投影片, 要求的內容大概是了解一下它們公司的動向以及所經驗的專案分享。 於是我就把碩一跟老闆還有同學所改版的【 OAI 博碩士論文搜尋系統 】整理了一下。 我是過年後開工第一天 2010.2.22 要面試, 所以還有一段時間 google 了一下英丰寶相關的報章媒體雜誌報導, 還有一些前人的面談經驗。 只不過我大學同學還有研究所同學聽到我面試回來的內容, 就開玩笑說我簡直去亂的  ̄▽ ̄" 可是我覺得我超級認真跟兩位工程師談得很開心啊! 而且我出來看了一下手錶大概講了有快一個半鐘頭吧! 不要這樣嘛! 我還跟我大學同學打賭說有第二關, 他要請我再吃一次飯說 ㄟ( ̄▽ ̄ㄟ) 講一下面試過程吧! 一去果然跟大家碰到的都差不多, 拿出 java 大概 50 題的考試卷給你作答 但我真的對 java 不熟,50 題只對 9 題 ← 我同學說亂點之一 不過後來面談過程中, 我也很誠實的對面試的兩位工程師說:「我覺得我自己都寫得很爛」 面談過程前面大概是先講自己所學可以帶給公司什麼貢獻? 這邊因為事前有 survey 公司的網站, 所以就跟它們侃侃而談一些 DSS、EIS、BI 等 我所受過的專業知識教育 = =+ 後面大概就是簡報我所做過的專案內容, 把我們 OAI 新舊兩版新增的功能介紹過一次 然後秀一下開發的環境介面 報告的最後談一下開發專案的經驗, 我談到 server 管理的經驗 session 造成硬碟滿了 工程師就問說:為啥你們會有這問題? 我就笑笑的說:後來發現我們 session 沒有設 time out  ̄▽ ̄" 兩位工程師就笑得很開心 順便也談了一下 spider 相關的議題 簡報完另外一位工程師開始問我一些問題, 我印象最深刻大概就是, 他問我說:你大學有沒有寫過你覺得很屌的程式啊? 結果我回答他說: 我覺得我有寫過最失敗的一次經驗 ← 我同學說亂點之二 因為我大學專題是 real case 實際跟印刷廠接洽, 然後寫出它們的 Expert System 可是後來跟使用者間的 domain knowledge 沒辦法有統一的整合 造成導入失敗 然後接著問我一些打工經驗,我就跟他們兩位東聊...

NHK【篤姬】觀後感

上個月在台北的公車上, 看到了篤姬即將在緯來日本台播出的廣告看板。 就一直很想拜讀, 聽說在日本很火紅的 NHK 歷史大河劇大作【篤姬】! 回到學校後, 找了一下現有資源總算花了一個月把 50 集份的篤姬看完了! XD" 說一下看了篤姬的心得吧! 其實我很喜歡篤姬故鄉流傳的一句鄉話 ─ 兼聽則明,偏聽則暗 意思大概是說: 如果我們人都只去聽我們想聽的,那麼我們可能就會被一些詭道所矇蔽 不管事實真相究竟怎樣? 最後我們只會一直朝我們所認為的那樣一直發展下去 所以我們面對事實的時候, 更該去注意到總體而不該只是去聽從某方的聲音 而宮崎葵所演的篤姬腳色,就是把這理念貫徹的很徹底的一位女性 當然一方面也是在於她的主動性,道理我們都知道, 只是有的時候要去實踐我們可能會因為一些因素而綁手綁腳, 但篤姬劇中卻能從中明曉大義,知道哪些該做就該去做 【篤姬】整個故事架構在幕末明治新年初期年代。 篤姬原名 ogatsu 是分家的一位女孩, 但因為其展現於不同於女性甚至更勝於男性的看法與氣概, 被薩摩藩領主齊彬大人看上,準備利用其作為新日本改革的一顆棋子 在面對國外列強環視以及日本內部動亂不斷的情況下, 篤姬所嫁過去的幕府德川宗家其實面臨國內兩派的聲浪脅迫, 一邊是擁幕派、一邊是倒幕派! 擁幕派認為依然依照戰國時期,由德川家帶領大家跟列強平起平坐 但是倒幕派一派認為,新日本應該有不同新的思維, 由大家擁立日本天皇共主形成內閣,然後擴充國力跟列強並立 而中間的故事,當然也包含了社會組織制度的瓦解 從早期領主、武士、農民一生下來就註定命運的時代, 到後期人人得以平等, (篤姬與小松帶刀) 篤姬故事中也交代了吉之助、小松帶刀、大久保等人, 努力為了新政府、新日本努力奮鬥的一面 雖然最後三人有點分崩離析, 但是也算交代的很完整,對於不懂日本歷史的我, 倒是看得津津有味 (一點都不笨的家定大人) (也就是在這個時刻,篤姬發現家定大人一點都不瘋癲) 但整體故事還是圍繞在篤姬身上,從嫁過去的家定大人駕崩, 到任命的下一代大將軍德川家茂大人也因積憂早逝。 德川家面臨前所未有的大危機,尤其在慶喜接任下一代將軍時期, 更被朝廷認為為朝敵的德川家, 故事中清楚交代篤姬如何無血開城, 放棄德川家兩百年打下來的績業,讓德川家得以延續下去, 而沒有被當時的聲浪抄家滅族。 而面對原本為養父的齊彬大人以及昔...