MySQL是否值得我們選擇的正反五個理由

2021-04-17 07:39:38 字數 4412 閱讀 1603

開源資料庫mysql發展到今天已經具有了非常廣泛的使用者基礎,有人說它對傳統的商業資料庫發起了強力的挑戰,有人說,它在企業環境還有待於證明自己,本文就從這兩方面來分別列出mysql

是否值得我們選擇的五個理由。

一、mysql值得我們選擇的五大理由

列舉選擇mysql的理由的最困難的地方在於,如何對這些理由進行排序。這就如同我們經常爭論的故事:先有雞還是先有蛋?

mysql的低成本來自於其簡單性嗎?它的普及性是由於其低成本嗎?其實,在mysql的最「好」與最「不好」的功能之間沒有明顯的分界線,但它們組合在一起就形成了一副讓我們欣賞的作品。

不管怎麼樣,市場的結果已經證明mysql具有價效比高、靈活、廣為使用和具有良好支援的特點。下面,我們列舉mysql值得你選擇的五個頂尖理由。

1、普及性

人們常說「成功孕育成功」,這種說法明顯非常適合mysql的情況。這個開源資料庫號稱在全世界有超過110萬份的完全安裝。最近由權威調查機構evans資料公司進行的一項調查顯示,mysql在過去兩年已經獲得了25%的市場份額。該調查公司還**,相比其他的開源資料庫和閉源資料庫,越來越多的開發者將繼續選擇mysql。evans的總裁johnandrews表示,使用者對mysql和其他開源資料庫的評價正在趕上甚至超過很多專有商業資料庫軟體。

由於mysql資料庫已經如此普及,對企業來說它無疑是乙個更好的選擇。

業界普遍的聲音認為:「mysql是乙個可靠的資料庫系統,無論是在嵌入式或大型群集系統的部署中,還是在基於web的應用程式領域,使用者時常會發現其實自己並不是第乙個選用mysql資料庫的先驅者。」

mysql在業界的流行所帶來的另乙個好處是,人們總可以很輕鬆地發現本行業的解決方案。廠商都希望他們的開發工具和應用程式框架可以與mysql資料庫相容,因為每個人都在使用它。mysql是開源lamp組合的乙個標準元件:linux、apache、mysql和perl/php。根據evans的調查,lamp組合的迅速推廣很大程度上代表著mysql的被廣泛接受。根據evans的調查報告,「mysql的使用在未來將繼續呈成長趨勢。」

2、簡單性

與其他資料庫相比,mysql易學易用。

你不用花費很多時間和金錢來培訓現有的職工,或者去花大價錢雇用那些擁有各種證書的開發者。因為mysql的維護和管理在很大程度上是「傻瓜型」的,這直接導致了人力成本上的節省,mysql的使用者spacemonkey實驗室的首席執行官mitchpirtle如此表示:「維護mysql使得你不需要乙個年薪15萬美元的dba,而且使用它開發程式也是非常簡單的。」

「對於mysql資料庫,無論是在開發方面,還是支援方面,現在有大量強大的工具可以選擇。每乙個新手開發者可以輕鬆地使用mysql資料庫進行開發。甚至乙個有經驗的windows管理者也可以輕鬆部署並開始學習它,而你不需投入一分錢來了解這個資料庫。

「通過有能力的dba的乙個簡單計畫,mysql可以達到令人難以想像的執行速度,」一位資深dba如此表示。mysql中沒有多餘的功能來拖累cpu或占用記憶體。如果你需要額外的功能的話,mysql的普及性實際上可以讓你發現總有乙個廠商會提供準確的解決方案,而這個方案會滿足你的需要和需求。

3、低成本

即使對於mysql的商業化的企業版來說,也沒有高昂的許可證成本,當你將其與像甲骨文和微軟之類的大型專有商業資料庫比較的話,你會發現實際上mysql可以更少地占用資金,前者的每cpu許可費用一般從4000美元到25000美元不等,而mysql企業版的支援和維護成本就更低了,只需每年花費2000到5000美元。無論你是自掏腰包來建立乙個新興公司,還是得到了風險投資商的贊助,使用mysql都可以降低你所需要的人力成本,正如前文所提到的,mysql易學、易部署、易管理和易維護。

對於現有業務,可以輕鬆移植到mysql。當你需要替換掉老的硬體,當你需要削減歷史遺留下的老系統的時候,選用mysql對於財務部門來說更具吸引力。mysql部署迅速,因此移植過程不會導致生產中斷。而且,較短的學習曲線可以讓你的系統管理員迅速掌握它的執行和維護。而且,mysql的易於維護和管理意味著目前的職員可以處理目前的工作。

4、良好的支援

5、靈活性和可擴充套件性

由於在mysql中有如此眾多的額外功能可選,諸如儲存引擎等,你可以選擇最適合你公司的乙個,或者嘗試選用多個引擎。mysql開始非常小巧,但是可以隨著公司的成長而不斷地變強大。mysqlab公司的乙個高階開發者者表示,「這個特點使得mysql可以根據你當前的系統的需要來進行調整。」

「mysql實際上是乙個資料庫家族,你可以從選擇乙個並將其配置成可以滿足你的大多數情況,」開源顧問公司ethiqa的總裁如此表示,「因此,你可以在開始的時候選擇乙個小巧的版本產品,以後再根據需要來對其進行效能或大小上的擴充套件。」

你可以配置mysql執行在微小的嵌入式應用程式中,處理的資料可能不足1mb——而你也可以用它來處理數tb的資料。mysql獲得這種可擴充套件性的途徑之一是通過乙個人們所熟知的儲存過程,這是乙個執行在程式之外的微型、預編譯程式。這些過程被儲存和執行在資料庫伺服器上,以減少在客戶端的處理過程,從而最大限度地提高了處理能力,因為通常情況下資料庫伺服器會執行地更快。儲存過程並不是mysql獨有的功能,但是這個最近新增加的功能使得這個資料庫比以前更具吸引力了。

mysql已經為支援所有最流行的web2.0語言做好了準備,諸如ruby、ajax等,當然還有php。有的業界分析師說過,「每乙個web2.0公司實質上就是乙個資料庫公司。」由於mysql已經是乙個執行了眾多知名web2.0**的資料,包括craigslist、digg、wikipedia和google等,或許我們可以說每乙個web2.0公司實質上是乙個使用mysql資料庫的公司。

二、不使用mysql的五個理由

在我們工作的過程中,經常能聽到很多不使用mysql的理由,雖然其中有一些是對mysql的誤解,不過同樣也有一些是合情合理的。下面我將描述五個不使用mysql的響亮理由。

首先我們要知道,或許有一項技術存在很多理由讓我們可以選擇使用它,但是讓我們不使用它往往只要有乙個理由就足夠了。選擇乙個軟體產品同樣也是如此。

1、mysql的授權方式

mysql採用雙重授權(duallicensed),它們是gpl和mysqlab制定的商業許可協議。

如果你在乙個遵循gpl的自由(開源)專案中使用mysql,那麼你可以遵循gpl協議使用mysql。然而,如果你的專案不是在gpl協議下的話,你必須為使用mysql來支付許可費用,或者你可能因為這個因素而將你的專案改為遵循gpl,那麼你需要處理因此帶來的更多的支援工作,這有可能會帶來成本上的提高。在這種情況下,一些軟體發行商可能傾向於選擇別的開源資料庫,例如遵循bsd授權的postgresql。

2、產品成熟性

到2023年,甲骨文的資料庫oracle已經誕生了30周年,而mysql卻連它的一半時間都沒有。微軟的sqlserver僅僅比mysql大兩年,但是sqlserver的發布是建立在sybase的基礎上,那時候sybase已經誕生了6年的時間。至於其他值得關注的開源資料庫,postgresql將在2023年達到20歲的生日。雖然mysql並不是市場上最年輕的資料庫,但是卻有更多成熟的資料庫可供我們選擇。

當然,或許這並不是我們拒絕mysql的乙個有說服力的理由,但是對於一些比較守舊的it經理來說,在為一些關鍵業務選擇平台的時候,平台的成熟性卻是必須要考慮的乙個因素,在這一點上,mysql無疑毫無優勢。

3、功能設定成熟性

要想在mysql與其他資料庫之間進行乙個面面俱到的功能設定對比,並不是一件容易的事情。隨著新軟體版本的發布或一些補丁的推出,曾經的功能列表可能會迅速變得過時了。而且,有些功能對有的應用程式非常重要,但是對別的應用程式則不一定。

有的時候,一些缺失的功能可以通過別的辦法來實現,例如,在mysql4.1以前,你可以通過使用join方法來替代子查詢的功能。在mysql5.0中,大多數關係型資料庫所要求的功能已經都具備,但是我們卻有理由懷疑這些功能在mysql5.0中的成熟性。充其量它們在mysql中被支援的時間也就一年左右,而在其他關係型資料庫中則已經存在了近10年的時間。

4、認證的作用

儘管mysql也有乙個認證培訓專案,但是它的培訓卻要比oracle或ms-sql相差很遠。儘管有的使用mysql的使用者表示,mysql很容易上手,但是對於具有企業級資料庫需求的使用者來說,無疑希望員工得到系統、有深度的培訓,顯然mysql在這一點上還做得很不夠。

乙個相關的問題是第三方支援的資格問題,儘管直接來自廠商的支援和服務可以一定程度上減緩這個問題,但是,對於有的企業來說,通過強有力的本地化支援顯然更有吸引力。

5、關於可擴充套件的看法

關於這個理由我把它放在最後一位。在很多業界專家中有乙個相當一致的觀點:mysql不能很好的擴充套件。關於這點可能有很大的分歧,爭論的焦點主要集中於水平可擴充套件性和垂直可擴充套件性上。mysql則更傾向於垂直可擴充套件性。

據我的觀察,現在有乙個趨勢,那些經過正式培訓的資料庫管理員dba更傾向於選擇乙個專有關聯式資料庫,例如oracle。對於一些具有專門資料庫管理員的比較大的環境來說,mysql很難得到寵愛,這時候,關於mysql是否真的具有良好的可擴充套件性的爭論已經沒有意義。

不可否認,mysql也是乙個很好的關係型資料庫,或許在技術上它與其他領先的關聯式資料庫相差並不大,或不具有劣勢。但是,對於一些企業環境來說,mysql顯然不具有優勢。

值得我們思考的5個問題

問題1 關於當初 又要聊起當時高考填志願的話題,說實話,現在我都不是很清楚自己特別喜歡什麼,更何況當時。當時我幾乎就是隨便選了幾個理工科專業,當時對我來說基本都一樣。部落格b的作者說 計算機這種奇妙的東西,相信沒有哪個學理工科的男孩子不熱愛吧,於是我就選擇了計算機作為自己的專業。我個人認為不見得人人...

自由選擇的正能量

一 正能量 我可以不按別人的來,別人可以不按我的來。不要怪誰,不要憤怒,不要恐懼,要感恩。要感恩。不合拍就各走各的吧。做事要和氣。在外少惹事。1 拒絕 被拒絕是很正常的事。我可以拒絕別人,別人可以拒絕我。不要因為一次沒有得到滿足,就報復別人,就不滿。我不可以這樣,我不可以變成這樣的人。如果自己大氣 ...

10個值得我們關注的python部落格

首先第乙個肯定是毋庸置疑的planet python這是最出名的python部落格其中之一,快去看看,我希望你能找到對你有用的東西,昨天它還更新了呢!第二個部落格是lucumr,博主是flask的創始人 乙個python micro web framework 第三個部落格是love python,...