忘掉數(shù)據(jù)庫
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
發(fā)布時間:2012-04-05 15:48:55 來源:軟件服務(wù)社 在2010年的時候,我們就曾談起過設(shè)計財務(wù)軟件采用哪種數(shù)據(jù)庫的問題,F12.2發(fā)布后,看到一些朋友對采用MySql有點(diǎn)擔(dān)心,擔(dān)心數(shù)據(jù)量大了之后性能是否有問題,所以再說一下我們的想法。 數(shù)據(jù)庫是基礎(chǔ),而財務(wù)軟件又極為重要,所以我們提前進(jìn)行了非常慎重的考慮,對包括MySql、PostgreSql等開源數(shù)據(jù)庫和SQL Server、Oracle、Sybase等商業(yè)數(shù)據(jù)庫都進(jìn)行了全面的分析,比如對PostgreSql我們還進(jìn)行了幾個月的實(shí)際開發(fā)測試。最終選擇了MySql,主要原因是: 1、開源、免費(fèi):這一點(diǎn)十分重要。我們的產(chǎn)品是完全免費(fèi)的,但如果需要使用一個費(fèi)用高昂的商業(yè)數(shù)據(jù)庫,那么用戶就只有二個選擇:要么花大筆的銀子,要么用盜版,這都不是我們希望看到的,我們希望用戶能自由、免費(fèi)、光明正大的使用。 2、跨平臺:這一點(diǎn)可以保證用戶不依賴于某種操作系統(tǒng),您可以用windows,也可以用linux。如果做不到這一點(diǎn),那么用戶也只能有二個選擇:要么高價購買windows server,要么用盜版。這同樣是不行的。 3、性能:這是第一位重要的因素。但MySql的性能實(shí)際上遠(yuǎn)優(yōu)于多數(shù)人的想象,而且由于它是開源的,因此,必要時我們可以進(jìn)行針對性的優(yōu)化。 有人擔(dān)心MySql數(shù)據(jù)量大了之后性能是否有問題,這種擔(dān)心往往來自于一些軟件商的宣傳,因?yàn)楹芏嘬浖虨榱诵麄髌洚a(chǎn)品如果強(qiáng)大,張嘴就胡噴什么Oracle、DB2、SQL Server之類的,仿佛運(yùn)行在Oracle、DB2、SQL Server之上才顯示它們的產(chǎn)品如何強(qiáng)大、復(fù)雜,也好象只有Oracle、DB2、SQL Server之類的數(shù)據(jù)庫才能支持他們?nèi)绱恕皬?qiáng)大”的產(chǎn)品。 但實(shí)際上,數(shù)據(jù)庫的性能很大程度取決于能否使用好。 舉一個身邊的例子:淘寶的數(shù)據(jù)量是非常大的,他們最初使用MySql,后來性能hold不住了,幾年前改成了Oracle,當(dāng)時好了一段時間,但后來發(fā)現(xiàn)到一定程度后,Oracle也出現(xiàn)難以解決的瓶頸,于是最終放棄了Oracle、又改回MySql。當(dāng)然,他們對MySql進(jìn)行了一些優(yōu)化,結(jié)果取得了非常好的效果。現(xiàn)在他們使用的就是MySql,即使是在光棍節(jié)促銷那種大并發(fā)量、大數(shù)據(jù)量的情況下,依然表現(xiàn)得非常給力。 又比如:我們以前使用的用友NC,那是用友號稱最高端的產(chǎn)品,使用的是商業(yè)數(shù)據(jù)庫,但在數(shù)據(jù)庫中只有2000多員工信息的情況下,查詢一個員工信息居然要用幾十秒,這是數(shù)據(jù)庫的問題嗎?顯然是使用的問題。使用不好,用什么大型數(shù)據(jù)庫都白搭。 再說一個去年我們遇到的事情:我們有一個北京的用戶福連家,是一家母嬰用品專業(yè)銷售企業(yè)。使用我們的產(chǎn)品換掉了他們原來的OA等系統(tǒng)后,感覺很好,就問起我們進(jìn)銷存,說他們現(xiàn)在的系統(tǒng)花了好幾十萬,但系統(tǒng)性能差到什么程度呢:白天沒人敢做統(tǒng)計分析,因?yàn)闃O慢,只要有幾個人做分析系統(tǒng)就死了,所以只好讓IT部天天晚上在別人下班后才敢做一些分析,而且晚上也極慢,經(jīng)常只能等一個通宵。后來他們的IT經(jīng)理帶著營運(yùn)總監(jiān)等幾個人來看我們現(xiàn)在的系統(tǒng),我們大約介紹了一下我們現(xiàn)有的數(shù)據(jù)量:在庫品種數(shù)11萬種,當(dāng)前在用品種數(shù)3萬多種,年銷售記錄數(shù)X億條,年銷售額N億元,當(dāng)前數(shù)據(jù)庫中保存了三年多的數(shù)據(jù)。他們估了一下,這個數(shù)據(jù)量是他們的十倍以上。我們按他們的要求做了各種數(shù)據(jù)分析,結(jié)果很多他們要做5分鐘、10分鐘甚至更長時間的分析我們幾乎都在5秒內(nèi)解決,最多的也不過15秒,而且數(shù)據(jù)分析深度、廣度比他們的需求更高。我們所用的是一臺性能不到他們服務(wù)器性能50%的一臺老機(jī)器,并且當(dāng)時還有近200個同時在線的其他員工在處理各種工作。他們的總監(jiān)當(dāng)時大怒,讓IT經(jīng)理用手機(jī)把過程錄下來,要回去找那個軟件商算賬(好笑的是,這位IT經(jīng)理由于天天晚上加班、被折騰得實(shí)在受不了,就問那個軟件商為什么用著那么好的服務(wù)器、數(shù)據(jù)量也不大,性能卻比我們差這么多,結(jié)果對方回復(fù):人家牛唄!)。其實(shí)這種事情沒什么奇怪,因?yàn)楹芏鄦栴}我們經(jīng)歷過,我們知道問題在哪里。根本問題不在于使用什么數(shù)據(jù)庫,而是在于怎樣使用,在于優(yōu)秀的算法。 在財務(wù)軟件開發(fā)過程中,我們也遇到過性能不好的情況,比如開始有的功能要用20多秒,但這不是MySql的問題,我們調(diào)整了算法后,0.5秒內(nèi)就解決了。現(xiàn)在,我們已經(jīng)全面評估了所有環(huán)節(jié),我們知道有哪些地方可能成為瓶頸,但可以確認(rèn),沒有任何問題會成為我們的障礙。 如果有一天,有人告訴我們說自己公司的規(guī)模太大了、數(shù)據(jù)量太大了、程序慢得難以忍受了,我們倒真的很希望遇上這樣的挑戰(zhàn),那時我們會非常高興地立刻給您解決,而且是免費(fèi)的。但我們相信不會遇到能阻礙我們的問題,我們相信自己的數(shù)學(xué)能力解決這些事情不是有八成或九成的把握,而是有百分之百的把握。 我們采用MySql還有一個原因是出于整體性考慮,目前OA、HR、PB、TC、CRM等各個系統(tǒng)都是基于MySql的,所以,財務(wù)系統(tǒng)等產(chǎn)品采用同樣的數(shù)據(jù)庫,可以保持非常好的整體性,我們希望能給用戶提供整體的、全面的、可持續(xù)的解決方案。正是因?yàn)橛羞@樣的設(shè)計考慮,所以您現(xiàn)在看到的是完整而統(tǒng)一的F-air,而不是象用友All-in-One那種假整合的騙人玩藝。 您完全不需要擔(dān)心什么數(shù)據(jù)庫的問題,實(shí)際上,用戶根本不用費(fèi)心考慮這些事情、只管使用就可以了,具體的技術(shù)問題應(yīng)當(dāng)是開發(fā)者負(fù)責(zé)的。不只是軟件,任何產(chǎn)品都應(yīng)當(dāng)這樣。如果做不到這一點(diǎn),那就是開發(fā)者的失職。我們甚至一直努力在使用手冊中盡可能不提Tomcat、MySql、數(shù)據(jù)庫等名詞。用戶要處理的工作很多,不應(yīng)當(dāng)再讓用戶考慮或擔(dān)心這些問題。這樣可以讓用戶有更多時間去優(yōu)化管理流程和核心業(yè)務(wù),或者去爬山、睡覺、看電影…… 該文章在 2012/9/11 23:04:41 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |