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