??? 上一篇: MongoDb企業(yè)應(yīng)用實(shí)戰(zhàn)(一) 寫在MongoDB應(yīng)用介紹之前(i)
?
????? 有段時(shí)間沒跟大家去分享和探討過一些問題,分享過一些經(jīng)驗(yàn)了(失敗過的,痛苦過的才最有看點(diǎn)啊,不知道各位同仁們?cè)趺慈タ催@個(gè)問題?)。接著跟大家嘮叨嘮叨。
且說6年前,那段千萬數(shù)據(jù)級(jí)別刻骨銘心的經(jīng)歷,讓我真正意識(shí)到一個(gè)好的產(chǎn)品或者是一個(gè)好的軟件系統(tǒng)是需要不斷的提煉,優(yōu)化,改進(jìn),檢驗(yàn),再改進(jìn)。這才能夠一舉奠定它在市場中的地位和價(jià)值(6年前,與其說那是項(xiàng)目,到不如說是一個(gè)完整的自動(dòng)識(shí)別行業(yè)的解決方案。(i)高速傳送帶,(ii)高速成組掃描設(shè)備,(iii)條形碼打印機(jī),(iv)自動(dòng)剔除氣缸,(v)手持終端[PDA],(vi)高速成像設(shè)備,十八般兵器悉數(shù)登場,才構(gòu)筑了后來了全國400多家企業(yè)級(jí)客戶,據(jù)最近我當(dāng)年的那位帶頭大哥介紹,現(xiàn)在都在那套系統(tǒng)已經(jīng)安裝到一些歐美在華的企業(yè)車間中了,他們又弄出了國際版了。)。
接上回: 我和我的項(xiàng)目經(jīng)理回到上海總部后對(duì)系統(tǒng)升級(jí)改進(jìn)解決方案
???? 如果單表數(shù)據(jù)量過多,有什么好的思路呢?我在6年前那段時(shí)間真心覺著一些解決問題的辦法或者思路太重要了。按照今天大家的官方說法是軟件系統(tǒng)中的設(shè)計(jì)思想太重要,一個(gè)好的架構(gòu)太重要了。如果是幾個(gè)人或者幾十個(gè)人的用戶,抑或是一天幾百條,幾千條數(shù)據(jù),簡單的寫寫,不談什么軟件設(shè)計(jì),不談什么數(shù)據(jù)庫設(shè)計(jì),問題也能解決。但終歸大家都能解決的那就沒什么含量了,也體現(xiàn)不出來一個(gè)項(xiàng)目經(jīng)理或者是項(xiàng)目中的核心靈魂人物的價(jià)值了。
?????? 話說我的項(xiàng)目經(jīng)理到現(xiàn)場一看,畢竟是久經(jīng)IT戰(zhàn)場,迅速的提出解決問題的辦法。當(dāng)時(shí)他在我的心目中正如下面這則小故事中說的那個(gè)物理學(xué)家:
" 有一臺(tái)價(jià)值數(shù)百萬的精密設(shè)備故障,怎么搞都沒辦法,最后一位物理學(xué)家說他行,開價(jià)十萬美元。沒辦法,答應(yīng)了。物理學(xué)家在圖紙上劃了一根線,說查這。結(jié)果真好了。老板一看一根線就十萬,想賴賬。物理學(xué)家說了一句話:劃一根線一美元,知道在哪劃線值九萬九千九百九十九美元。老板一聽,讓人付錢。 "
???? 他知道從哪里劃線,并且是屬于一陣見血式的,那就聊聊當(dāng)時(shí)的一些做法,大家如果看到這篇文章,有什么好的想法,好的做法,也歡迎大家不吝賜教。
?
(i) 根據(jù)數(shù)據(jù)的狀態(tài),重新劃分使用過的和沒使用過的數(shù)據(jù)。
(ii)沒有使用過的數(shù)據(jù),按照數(shù)據(jù)產(chǎn)生的月份遷移到對(duì)應(yīng)月份的數(shù)據(jù)庫表中。
(iii) 建立生產(chǎn)庫的歷史備份庫,將生產(chǎn)庫的中已上傳至國家監(jiān)管平臺(tái)的數(shù)據(jù)備份至歷史庫中。
(iv)改進(jìn)軟件,針對(duì)查詢數(shù)據(jù)部分,分為當(dāng)前生產(chǎn)庫查詢和歷史數(shù)據(jù)查詢。
(v)改進(jìn)新庫創(chuàng)建為每一新年手動(dòng)創(chuàng)建,根據(jù)時(shí)間判斷自動(dòng)創(chuàng)建,并同步遷移上一年沒有使用過的數(shù)據(jù)。
?
其實(shí)我在后來一些項(xiàng)目中發(fā)現(xiàn)6年前的做法,在6年后這個(gè)辦法依舊不過時(shí)。最近跟一個(gè)資深的Oracle DBA聊到他在 Oracle中數(shù)據(jù)的備份和優(yōu)化策略時(shí),發(fā)現(xiàn)他也是采取類似的方式去處理。
?
(i)對(duì)Oracle建立水平分區(qū)表,將一個(gè)完整的表中的數(shù)據(jù)存儲(chǔ)到不同的數(shù)據(jù)空間中。
(SqlServer也可以做水平分區(qū)表,當(dāng)時(shí)考慮到那是一個(gè)全國性的項(xiàng)目,只是采取了更容易維護(hù)的方式,自動(dòng)創(chuàng)建對(duì)應(yīng)數(shù)據(jù)庫,自動(dòng)創(chuàng)建表結(jié)構(gòu),這樣整個(gè)系統(tǒng)的維護(hù)成本更低,也能夠真正做到替用戶著想,不是每個(gè)企業(yè)都專門去養(yǎng)一幫很N叉的開發(fā),運(yùn)維人員。)
(ii)每隔6個(gè)月,遷移6個(gè)月前的數(shù)據(jù)至歷史備份庫中。(跟6年前我們的數(shù)據(jù)庫維護(hù)策略如出一轍。)
?
各位同仁們:但是6年前,我怎么能夠理解到這種開發(fā)或者運(yùn)維的思想呢?一上來開始寫復(fù)雜的存儲(chǔ)過程我就覺著自己很N了,多年后回想起來這其實(shí)沒什么哦。現(xiàn)在ORM,LINQ,甚至是NoSql的產(chǎn)品也都用上了,也沒有覺著自己有多么N叉哦。只是真心覺著這么6年來的持續(xù)的學(xué)習(xí),保持著的持續(xù)學(xué)習(xí)狀態(tài)讓我受益匪淺。另外看待一些問題,思考一些問題也更加接地氣,更加靠譜些了。想起來了那句話:" 最困難的事情是了解自己 最不容易的事情是欣賞自己 。"
?????? 2014 新的一年真的需要對(duì)自己有一個(gè)更加理性的認(rèn)識(shí)。
?
?
?
?
?
?
MongoDb企業(yè)應(yīng)用實(shí)戰(zhàn)(一) 寫在MongoDB應(yīng)用介紹之前(ii)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
