MySQL是否值得我們選擇的正反五個(gè)理由
開源數(shù)據(jù)庫MySQL發(fā)展到今天已經(jīng)具有了非常廣泛的用戶基礎(chǔ),有人說它對傳統(tǒng)的商業(yè)數(shù)據(jù)庫發(fā)起了強(qiáng)力的挑戰(zhàn),有人說,它在企業(yè)環(huán)境還有待于證明自己,本文就從這兩方面來分別列出MySQL是否值得我們選擇的五個(gè)理由。
一、MySQL值得我們選擇的五大理由
列舉選擇MySQL的理由的最困難的地方在于,如何對這些理由進(jìn)行排序。這就如同我們經(jīng)常爭論的故事:先有雞還是先有蛋?
MySQL的低成本來自于其簡單性嗎?它的普及性是由于其低成本嗎?其實(shí),在MySQL的最“好”與最“不好”的功能之間沒有明顯的分界線,但它們組合在一起就形成了一副讓我們欣賞的作品。
不管怎么樣,市場的結(jié)果已經(jīng)證明MySQL具有性價(jià)比高、靈活、廣為使用和具有良好支持的特點(diǎn)。下面,我們列舉MySQL值得你選擇的五個(gè)頂尖理由。
1、普及性
人們常說“成功孕育成功”,這種說法明顯非常適合MySQL的情況。這個(gè)開源數(shù)據(jù)庫號稱在全世界有超過110萬份的完全安裝。最近由權(quán)威調(diào)查機(jī)構(gòu)Evans數(shù)據(jù)公司進(jìn)行的一項(xiàng)調(diào)查顯示,MySQL在過去兩年已經(jīng)獲得了25%的市場份額。該調(diào)查公司還預(yù)測,相比其他的開源數(shù)據(jù)庫和閉源數(shù)據(jù)庫,越來越多的開發(fā)者將繼續(xù)選擇MySQL。Evans的總裁John Andrews表示,用戶對MySQL和其他開源數(shù)據(jù)庫的評價(jià)正在趕上甚至超過很多專有商業(yè)數(shù)據(jù)庫軟件。
由于MySQL數(shù)據(jù)庫已經(jīng)如此普及,對企業(yè)來說它無疑是一個(gè)更好的選擇。
業(yè)界普遍的聲音認(rèn)為:“MySQL是一個(gè)可靠的數(shù)據(jù)庫系統(tǒng),無論是在嵌入式或大型群集系統(tǒng)的部署中,還是在基于Web的應(yīng)用程序領(lǐng)域,用戶時(shí)常會(huì)發(fā)現(xiàn)其實(shí)自己并不是第一個(gè)選用MySQL數(shù)據(jù)庫的先驅(qū)者。”
MySQL在業(yè)界的流行所帶來的另一個(gè)好處是,人們總可以很輕松地發(fā)現(xiàn)本行業(yè)的解決方案。廠商都希望他們的開發(fā)工具和應(yīng)用程序框架可以與MySQL數(shù)據(jù)庫兼容,因?yàn)槊總(gè)人都在使用它。MySQL是開源LAMP組合的一個(gè)標(biāo)準(zhǔn)組件:Linux、Apache、MySQL和Perl/PHP。根據(jù)Evans的調(diào)查,LAMP組合的迅速推廣很大程度上代表著MySQL的被廣泛接受。根據(jù)Evans的調(diào)查報(bào)告,“MySQL的使用在未來將繼續(xù)呈成長趨勢。”
2、簡單性
與其他數(shù)據(jù)庫相比,MySQL易學(xué)易用。
你不用花費(fèi)很多時(shí)間和金錢來培訓(xùn)現(xiàn)有的職工,或者去花大價(jià)錢雇用那些擁有各種證書的開發(fā)者。因?yàn)镸ySQL的維護(hù)和管理在很大程度上是“傻瓜型”的,這直接導(dǎo)致了人力成本上的節(jié)省,MySQL的用戶Spacemonkey實(shí)驗(yàn)室的首席執(zhí)行官M(fèi)itch Pirtle如此表示:“維護(hù)MySQL使得你不需要一個(gè)年薪15萬美元的DBA,而且使用它開發(fā)程序也是非常簡單的。”
“對于MySQL數(shù)據(jù)庫,無論是在開發(fā)方面,還是支持方面,現(xiàn)在有大量強(qiáng)大的工具可以選擇。每一個(gè)新手開發(fā)者可以輕松地使用MySQL數(shù)據(jù)庫進(jìn)行開發(fā)。甚至一個(gè)有經(jīng)驗(yàn)的Windows管理者也可以輕松部署并開始學(xué)習(xí)它,而你不需投入一分錢來了解這個(gè)數(shù)據(jù)庫。
對于IT經(jīng)理來說,令他們喜歡的MySQL的簡單性還有另一方面。MySQL可以運(yùn)行的更快速。某些人或許會(huì)說MySQL缺少了一些人們想要的功能,但是MySQL的支持者們卻認(rèn)為,MySQL所保留的功能都是精華,并且是你部署、配置和維護(hù)這個(gè)數(shù)據(jù)庫所必不可少的一些功能。
“通過有能力的DBA的一個(gè)簡單計(jì)劃,MySQL可以達(dá)到令人難以想像的運(yùn)行速度,”一位資深DBA如此表示。MySQL中沒有多余的功能來拖累CPU或占用內(nèi)存。如果你需要額外的功能的話,MySQL的普及性實(shí)際上可以讓你發(fā)現(xiàn)總有一個(gè)廠商會(huì)提供準(zhǔn)確的解決方案,而這個(gè)方案會(huì)滿足你的需要和需求。
3、低成本
MySQL數(shù)據(jù)庫歸MySQL AB公司所有,但是這個(gè)軟件是開源的,有一個(gè)社區(qū)版可以免費(fèi)下載。稍俱常識的新入門者都可以輕松實(shí)現(xiàn)在一個(gè)常見硬件上安裝和配置MySQL。MySQL對硬件的較低要求是其最大的優(yōu)勢之一,不過需要注意的是:內(nèi)存越多越好,因?yàn)樗械闹匾獢?shù)據(jù)存儲(chǔ)都在內(nèi)存中完成。一個(gè)免費(fèi)的數(shù)據(jù)庫意味著,更多珍貴的資金可以用于其他業(yè)務(wù)的啟動(dòng),諸如市場、廣告或調(diào)研和開發(fā)等。
即使對于MySQL的商業(yè)化的企業(yè)版來說,也沒有高昂的許可證成本,當(dāng)你將其與像甲骨文和微軟之類的大型專有商業(yè)數(shù)據(jù)庫比較的話,你會(huì)發(fā)現(xiàn)實(shí)際上MySQL可以更少地占用資金,前者的每CPU許可費(fèi)用一般從4000美元到25000美元不等,而MySQL企業(yè)版的支持和維護(hù)成本就更低了,只需每年花費(fèi)2000到5000美元。無論你是自掏腰包來創(chuàng)建一個(gè)新興公司,還是得到了風(fēng)險(xiǎn)投資商的贊助,使用MySQL都可以降低你所需要的人力成本,正如前文所提到的,MySQL易學(xué)、易部署、易管理和易維護(hù)。
對于現(xiàn)有業(yè)務(wù),可以輕松移植到MySQL。當(dāng)你需要替換掉老的硬件,當(dāng)你需要削減歷史遺留下的老系統(tǒng)的時(shí)候,選用MySQL對于財(cái)務(wù)部門來說更具吸引力。MySQL部署迅速,因此移植過程不會(huì)導(dǎo)致生產(chǎn)中斷。而且,較短的學(xué)習(xí)曲線可以讓你的系統(tǒng)管理員迅速掌握它的運(yùn)行和維護(hù)。而且,MySQL的易于維護(hù)和管理意味著目前的職員可以處理目前的工作。
4、良好的支持
MySQL的雙許可模式意味著,那些希望對數(shù)據(jù)庫具有額外控制的人可以直接從數(shù)據(jù)庫廠商那兒得到幫助。MySQL AB公司提供了支持和維護(hù)服務(wù),諸如代碼更新和補(bǔ)丁修補(bǔ)服務(wù)等,每年訂閱費(fèi)為大約3000美元。通過支付一定費(fèi)用,客戶可以得到優(yōu)先的24/7支持,訪問內(nèi)容豐富的在線知識庫和聯(lián)系一個(gè)專門的技術(shù)負(fù)責(zé)經(jīng)理。
對免費(fèi)版的用戶也具有充足的支持服務(wù)。在dev.mysql.com上,一個(gè)大型的強(qiáng)大社區(qū)用戶和開發(fā)者可以討論所有關(guān)于MySQL的事情。這個(gè)站點(diǎn)擁有博客、指南、視頻、技術(shù)交流會(huì)、白皮書和論壇等方式的交流。你碰到的問題可能已經(jīng)在社區(qū)中被別的人已經(jīng)問過,即使沒有,你也可以提出問題或通過Google來搜索答案。社區(qū)的相關(guān)負(fù)責(zé)人士:“MySQL社區(qū)是活躍、友好和內(nèi)容淵博的。”
5、靈活性和可擴(kuò)展性
由于在MySQL中有如此眾多的額外功能可選,諸如存儲(chǔ)引擎等,你可以選擇最適合你公司的一個(gè),或者嘗試選用多個(gè)引擎。MySQL開始非常小巧,但是可以隨著公司的成長而不斷地變強(qiáng)大。MySQL AB公司的一個(gè)高級開發(fā)者者表示,“這個(gè)特點(diǎn)使得MySQL可以根據(jù)你當(dāng)前的系統(tǒng)的需要來進(jìn)行調(diào)整。”
“MySQL實(shí)際上是一個(gè)數(shù)據(jù)庫家族,你可以從選擇一個(gè)并將其配置成可以滿足你的大多數(shù)情況,”開源顧問公司Ethiqa的總裁如此表示,“因此,你可以在開始的時(shí)候選擇一個(gè)小巧的版本產(chǎn)品,以后再根據(jù)需要來對其進(jìn)行性能或大小上的擴(kuò)展。”
你可以配置MySQL運(yùn)行在微小的嵌入式應(yīng)用程序中,處理的數(shù)據(jù)可能不足1Mb——而你也可以用它來處理數(shù)Tb的數(shù)據(jù)。MySQL獲得這種可擴(kuò)展性的途徑之一是通過一個(gè)人們所熟知的存儲(chǔ)過程,這是一個(gè)運(yùn)行在程序之外的微型、預(yù)編譯程序。這些過程被存儲(chǔ)和運(yùn)行在數(shù)據(jù)庫服務(wù)器上,以減少在客戶端的處理過程,從而最大限度地提高了處理能力,因?yàn)橥ǔG闆r下數(shù)據(jù)庫服務(wù)器會(huì)運(yùn)行地更快。存儲(chǔ)過程并不是MySQL獨(dú)有的功能,但是這個(gè)最近新增加的功能使得這個(gè)數(shù)據(jù)庫比以前更具吸引力了。
MySQL已經(jīng)為支持所有最流行的Web 2.0語言做好了準(zhǔn)備,諸如Ruby、Ajax等,當(dāng)然還有PHP。有的業(yè)界分析師說過,“每一個(gè)Web 2.0公司實(shí)質(zhì)上就是一個(gè)數(shù)據(jù)庫公司。”由于MySQL已經(jīng)是一個(gè)運(yùn)行了眾多知名Web 2.0網(wǎng)站的數(shù)據(jù),包括Craigslist、Digg、Wikipedia和Google等,或許我們可以說每一個(gè)Web 2.0公司實(shí)質(zhì)上是一個(gè)使用MySQL數(shù)據(jù)庫的公司。
二、不使用MySQL的五個(gè)理由
在我們工作的過程中,經(jīng)常能聽到很多不使用MySQL的理由,雖然其中有一些是對MySQL的誤解,不過同樣也有一些是合情合理的。下面我將描述五個(gè)不使用MySQL的響亮理由。
首先我們要知道,或許有一項(xiàng)技術(shù)存在很多理由讓我們可以選擇使用它,但是讓我們不使用它往往只要有一個(gè)理由就足夠了。選擇一個(gè)軟件產(chǎn)品同樣也是如此。
1、MySQL的授權(quán)方式
MySQL采用雙重授權(quán)(Dual Licensed),它們是GPL和MySQL AB制定的商業(yè)許可協(xié)議。
如果你在一個(gè)遵循GPL的自由(開源)項(xiàng)目中使用MySQL,那么你可以遵循GPL協(xié)議使用MySQL。然而,如果你的項(xiàng)目不是在GPL協(xié)議下的話,你必須為使用MySQL來支付許可費(fèi)用,或者你可能因?yàn)檫@個(gè)因素而將你的項(xiàng)目改為遵循GPL,那么你需要處理因此帶來的更多的支持工作,這有可能會(huì)帶來成本上的提高。在這種情況下,一些軟件發(fā)行商可能傾向于選擇別的開源數(shù)據(jù)庫,例如遵循BSD授權(quán)的PostgreSQL。
2、產(chǎn)品成熟性
到2009年,甲骨文的數(shù)據(jù)庫Oracle已經(jīng)誕生了30周年,而MySQL卻連它的一半時(shí)間都沒有。微軟的SQL Server僅僅比MySQL大兩年,但是SQL Server的發(fā)布是建立在Sybase的基礎(chǔ)上,那時(shí)候Sybase已經(jīng)誕生了6年的時(shí)間。至于其他值得關(guān)注的開源數(shù)據(jù)庫,PostgreSQL將在2009年達(dá)到20歲的生日。雖然MySQL并不是市場上最年輕的數(shù)據(jù)庫,但是卻有更多成熟的數(shù)據(jù)庫可供我們選擇。
當(dāng)然,或許這并不是我們拒絕MySQL的一個(gè)有說服力的理由,但是對于一些比較守舊的IT經(jīng)理來說,在為一些關(guān)鍵業(yè)務(wù)選擇平臺(tái)的時(shí)候,平臺(tái)的成熟性卻是必須要考慮的一個(gè)因素,在這一點(diǎn)上,MySQL無疑毫無優(yōu)勢。
3、功能設(shè)置成熟性
要想在MySQL與其他數(shù)據(jù)庫之間進(jìn)行一個(gè)面面俱到的功能設(shè)置對比,并不是一件容易的事情。隨著新軟件版本的發(fā)布或一些補(bǔ)丁的推出,曾經(jīng)的功能列表可能會(huì)迅速變得過時(shí)了。而且,有些功能對有的應(yīng)用程序非常重要,但是對別的應(yīng)用程序則不一定。
有的時(shí)候,一些缺失的功能可以通過別的辦法來實(shí)現(xiàn),例如,在MySQL 4.1以前,你可以通過使用join方法來替代子查詢的功能。在MySQL 5.0中,大多數(shù)關(guān)系型數(shù)據(jù)庫所要求的功能已經(jīng)都具備,但是我們卻有理由懷疑這些功能在MySQL 5.0中的成熟性。充其量它們在MySQL中被支持的時(shí)間也就一年左右,而在其他關(guān)系型數(shù)據(jù)庫中則已經(jīng)存在了近10年的時(shí)間。
4、認(rèn)證的作用
盡管MySQL也有一個(gè)認(rèn)證培訓(xùn)項(xiàng)目,但是它的培訓(xùn)卻要比Oracle或MS-SQL相差很遠(yuǎn)。盡管有的使用MySQL的用戶表示,MySQL很容易上手,但是對于具有企業(yè)級數(shù)據(jù)庫需求的用戶來說,無疑希望員工得到系統(tǒng)、有深度的培訓(xùn),顯然MySQL在這一點(diǎn)上還做得很不夠。
一個(gè)相關(guān)的問題是第三方支持的資格問題,盡管直接來自廠商的支持和服務(wù)可以一定程度上減緩這個(gè)問題,但是,對于有的企業(yè)來說,通過強(qiáng)有力的本地化支持顯然更有吸引力。
5、關(guān)于可擴(kuò)展的看法
關(guān)于這個(gè)理由我把它放在最后一位。在很多業(yè)界專家中有一個(gè)相當(dāng)一致的觀點(diǎn):MySQL不能很好的擴(kuò)展。關(guān)于這點(diǎn)可能有很大的分歧,爭論的焦點(diǎn)主要集中于水平可擴(kuò)展性和垂直可擴(kuò)展性上。MySQL則更傾向于垂直可擴(kuò)展性。
據(jù)我的觀察,現(xiàn)在有一個(gè)趨勢,那些經(jīng)過正式培訓(xùn)的數(shù)據(jù)庫管理員DBA更傾向于選擇一個(gè)專有關(guān)系數(shù)據(jù)庫,例如Oracle。對于一些具有專門數(shù)據(jù)庫管理員的比較大的環(huán)境來說,MySQL很難得到寵愛,這時(shí)候,關(guān)于MySQL是否真的具有良好的可擴(kuò)展性的爭論已經(jīng)沒有意義。
不可否認(rèn),MySQL也是一個(gè)很好的關(guān)系型數(shù)據(jù)庫,或許在技術(shù)上它與其他領(lǐng)先的關(guān)系數(shù)據(jù)庫相差并不大,或不具有劣勢。但是,對于一些企業(yè)環(huán)境來說,MySQL顯然不具有優(yōu)勢。
關(guān)鍵字:數(shù)據(jù)庫、MySQL
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解