1、MySQL(和PHP搭配之最佳組合)的授權方式
MySQL(和PHP搭配之最佳組合)采用雙重授權(Dual Licensed),它們是GPL和MySQL(和PHP搭配之最佳組合) AB制定的商業許可協議。
如果你在一個遵循GPL的自由(開源)項目中使用MySQL(和PHP搭配之最佳組合),那麼你可以遵循GPL協議使用MySQL(和PHP搭配之最佳組合)。然而,如果你的項目不是在GPL協議下的話,你必須為使用MySQL(和PHP搭配之最佳組合)來支付許可費用,或者你可能因為這個因素而將你的項目改為遵循GPL,那麼你需要處理因此帶來的更多的支持工作,這有可能會帶來成本上的提高。在這種情況下,一些軟件發行商可能傾向於選擇別的開源數據庫,例如遵循BSD授權的PostgreSQL。
2、產品成熟性
到2009年,甲骨文的數據庫Oracle(大型網站數據庫平台)已經誕生了30周年,而MySQL(和PHP搭配之最佳組合)卻連它的一半時間都沒有。微軟的sql server(WINDOWS平台上強大的數據庫平台)僅僅比MySQL(和PHP搭配之最佳組合)大兩年,但是sql server(WINDOWS平台上強大的數據庫平台)的發布是建立在Sybase的基礎上,那時候Sybase已經誕生了6年的時間。至於其他值得關注的開源數據庫,PostgreSQL將在2009年達到20歲的生日。雖然MySQL(和PHP搭配之最佳組合)並不是市場上最年輕的數據庫,但是卻有更多成熟的數據庫可供我們選擇。
當然,或許這並不是我們拒絕MySQL(和PHP搭配之最佳組合)的一個有說服力的理由,但是對於一些比較守舊的IT經理來說,在為一些關鍵業務選擇平台的時候,平台的成熟性卻是必須要考慮的一個因素,在這一點上,MySQL(和PHP搭配之最佳組合)無疑毫無優勢。
3、功能設置成熟性
要想在MySQL(和PHP搭配之最佳組合)與其他數據庫之間進行一個面面俱到的功能設置對比,並不是一件容易的事情。隨著新軟件版本的發布或一些補丁的推出,曾經的功能列表可能會迅速變得過時了。而且,有些功能對有的應用程序非常重要,但是對別的應用程序則不一定。
有的時候,一些缺失的功能可以通過別的辦法來實現,例如,在MySQL(和PHP搭配之最佳組合) 4.1以前,你可以通過使用join方法來替代子查詢的功能。在MySQL(和PHP搭配之最佳組合) 5.0中,大多數關系型數據庫所要求的功能已經都具備,但是我們卻有理由懷疑這些功能在MySQL(和PHP搭配之最佳組合) 5.0中的成熟性。充其量它們在MySQL(和PHP搭配之最佳組合)中被支持的時間也就一年左右,而在其他關系型數據庫中則已經存在了近10年的時間。
4、認證的作用
盡管MySQL(和PHP搭配之最佳組合)也有一個認證培訓項目,但是它的培訓卻要比Oracle(大型網站數據庫平台)或MS-SQL相差很遠。盡管有的使用MySQL(和PHP搭配之最佳組合)的用戶表示,MySQL(和PHP搭配之最佳組合)很容易上手,但是對於具有企業級數據庫需求的用戶來說,無疑希望員工得到系統、有深度的培訓,顯然MySQL(和PHP搭配之最佳組合)在這一點上還做得很不夠。
一個相關的問題是第三方支持的資格問題,盡管直接來自廠商的支持和服務可以一定程度上減緩這個問題,但是,對於有的企業來說,通過強有力的本地化支持顯然更有吸引力。
5、關於可擴展的看法
關於這個理由我把它放在最後一位。在很多業界專家中有一個相當一致的觀點:MySQL(和PHP搭配之最佳組合)不能很好的擴展。關於這點可能有很大的分歧,爭論的焦點主要集中於水平可擴展性和垂直可擴展性上。MySQL(和PHP搭配之最佳組合)則更傾向於垂直可擴展性。
據我的觀察,現在有一個趨勢,那些經過正式培訓的數據庫管理員DBA更傾向於選擇一個專有關系數據庫,例如Oracle(大型網站數據庫平台)。對於一些具有專門數據庫管理員的比較大的環境來說,MySQL(和PHP搭配之最佳組合)很難得到寵愛,這時候,關於MySQL(和PHP搭配之最佳組合)是否真的具有良好的可擴展性的爭論已經沒有意義。
不可否認,MySQL(和PHP搭配之最佳組合)也是一個很好的關系型數據庫,或許在技術上它與其他領先的關系數據庫相差並不大,或不具有劣勢。但是,對於一些企業環境來說,MySQL(和PHP搭配之最佳組合)顯然不具有優勢。 所以不要盲目隨大流,也要根據其功能性能的好壞去選擇,對MySQL數據庫的選用也不是說一定不好,只是在上面這五點上做的不是很好,其他方面還是值得肯定的。