塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.2MySQL的悄然而至(4)
2.5 向前向前向前
自從進入被收購的漩渦,MySQL的發展雖然不至於完全停滯,可是也大受影響,Oracle深知,當務之急必須先維穩。因此完成對SUN公司的收購案,將MySQL納入囊中之後,將原有MySQL的版本劃分和分支重新整理,6.0版本被取消,5.1和5.5版本不斷進行BUG修復,並放出新的beta版本(不能否認,SUN公司之前也在進行若干準備工作)。
Oracle對著業界喊:我們會支援MySQL,比SUN投入更多的精力,來開發和支援它;
Oracle對著社群喊:老鄉們,都出來吧,皇軍是來送糧食的。
2010年12月,MySQ 5.5 GA版本正式對外發布,對此,MySQL公司的前CEO(就是那位Marten Micko)曾評論說,5.5版本可能是有史以來最好的版本。我以一個過來人的身份,儘量站在客觀的角度來評價,我可以負責任地說,他說的是對的,在MySQL5.5版本中,Oracle完全像是在特性打包大放送。
提幾個比較重量級的變更吧。首先,MySQL預設的儲存引擎變更為InnoDB,儘管多少年前InnoDB就已經作為事實上的預設儲存引擎,但是其預設地位獲得官方承認,是從5.5版本開始的。除此之外,由於InnoDB引擎的開發商Innobase早已被Oracle公司收購,如今可算做同一家公司的內部專案,針對InnoDB引擎細節的提升相當的多,比如說對於適配Hash索引,I/O子系統效能提升,引入多回滾段,提供分組提交(Group Commit),對於多核的高效利用等等。
針對複製特性,在MySQL 5.5版本中,官方的半同步複製特性千呼萬喚始出來;分割槽特性方面,功能也得到較大增強,LIST分割槽和RANGE分割槽增加,基於指定列的列值做為分割槽條件,這樣就可以較為簡單地基於日期及字元值進行分割槽了,刪除記錄時,可以通過ALTER TABLE ... TRUNCATE PARTITION語句快速刪除指定分割槽的資料,這類改進對於熟悉Oracle資料庫的朋友們來說會感到頗為親切,沒錯,不管是語法還是功能,與Oracle資料庫中的同類功能一脈相承,MySQL 5.5版本對分割槽特性的功能提升,對於分割槽功能的深度使用者來說,絕對是項重大喜訊。
此外,在字符集方面,有一個細節不得不提,MySQL 5.5版本新引入了UTF16,UTF32和UTF8MB4字符集。同學們可能會想,新支援幾個字符集有什麼了不起,這也算重點特性嗎?呃,這個,可以算,因為這些字符集的引入很有背景。
MySQL資料庫真正興起,一個非常重要的原因是趕上了網際網路的浪潮,其自身也在網際網路企業中被廣泛使用。而隨著移動網際網路的興起,iPhone等蘋果裝置的暢銷,使用MySQL 5.1及之前版本來儲存資料的企業可能會發現,他們遇到問題了。對於iOS的內建表情(emoji),MySQL5.1及之前版本中,不管字符集如何設定,儲存時總會為亂碼,即使設定為UTF8字符集也無用,因為即使是UTF8字符集,儲存單個字元最大隻有3個位元組,但對於像emoji表情這樣的特殊字元,需要用4個字元來儲存,在5.1版本,對此毫無辦法。
MySQL 5.5版本新引入了UTF8MB4字符集,做為UTF8字符集的超集,它不僅能夠支援所有UTF8能夠支援的字元,而且還能夠使用4個位元組來儲存字元,這下需要使用emoji字元的應用有救了。國外的情況我們不瞭解,單就國內來說,著實掀起一陣升級至MySQL 5.5的浪潮(沒辦法,不升級不行啊,瞅瞅身邊智慧移動終端有多普及、移動網際網路有多火熱,這部分使用者的訴求老闆說了必須滿足,小小DBA哪敢忽視)。
2013年2月,MySQL 5.6 GA版本正式釋出,毫無疑問,這是迄今為止最棒的一個版本。5.6版本中都提供哪些激動人心的功能,這裡不劇透了,同學們,本書中的所有操作,如非特別註明,正是基於最新的MySQL 5.6.12版本,後面有整整一本書的內容等待你們去發掘。
2.6 以開源的心態學開源
前面曾經提到過,MySQL資料庫得以興起,一項重要的原因就是趕上了網際網路的浪潮,切實滿足網際網路應用中的實際需求。
舉例來說,早在1996年,當PHP在網際網路開發中逐漸熱門起來的時候,他們就開始與PHP的建立人溝通聯絡,獲得一線的實際需求,比如分頁在網站中很常用,那麼他們就加入了LIMIT子句(在標準SQL語法的基礎之上擴充套件),這樣就非常實用。所以一開始,即使MySQL的功能不多(好吧,是很少),但是他們距離終端使用者非常近,提供了使用者想要的東西,並得到了使用者的認可。
開源,可視做幫助他們快速成長的另一大助力。他們從使用者那裡獲取真實的需求,同時,他們也能從開發者那裡得到眾多的反饋。因為開源,它的每一行程式碼都是開放的,所有人都能看到,當軟體出現BUG,很快就會有人告訴你問題並協助解決,同樣也有眾多的工程師開發自己感興趣的工具,並最終被整合到官方版本中,成為官方的產品。當然,大多數的工具不會被整合到官方產品中,但是這並不妨礙、也不會影響眾多開發者,持續提供新的工具或外掛的熱情。對於使用者來說,可能會需要用到某項功能,但因為該功能應用場景極窄,官方沒有可能進行鍼對性的開發,可是在開源生態圈中,就有機會遇到由第三方工程師開發的、提供相應功能的工具。
本書主題是講MySQL,不過並不限於MySQL,內容中將出現眾多第三方的開源工具(或指令碼),這也是開源軟體的特點之一。
傳統關係型資料庫軟體如ORACLE/MSSQL等,它們自身的功能就已足夠強大,再加上軟體廠商實力強悍,應用體系完整,由他們主導的情況下,恨不能所有東西都用他們自己的產品,這種模式並非絕對不好,只是某些情況下,使用者可能會有上船容易、想下去時艱難的感受。
開源軟體就是另一種風格了,以MySQL資料庫為例,儘管官方仍在不斷完善功能,但是相比其它大型資料庫軟體,仍然有明顯的差距。可是這一點為什麼沒有成為制約它發展的要素呢,就是因為有大量第三方軟體的支援。也許某項功能官方並未提供,或實現的並不優雅,沒關係,總能找到合乎需求的第三方工具。對於一些小需求,自己寫些小的指令碼更是普遍,更何況MySQL是開源軟體,對於技術功底深厚,動手能力強的朋友,還可以自己動手二次開發,實現自己專用的分支版本。
別人的東西可以直接拿來就用,不需要重複造輪子,同樣,自己寫出了得意的工具,也能夠分享出去,方便他人,回饋社群。這,就是開源。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-1192634/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.2MySQL的悄然而至(3)MySql
- 塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.2MySQL的悄然而至(2)MySql
- 塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.2MySQL的悄然而至(1)MySql
- 塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.1開源軟體的故事(3)MySql
- 塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.1開源軟體的故事(2)MySql
- 塗抹MySQL--第1章 開源運動與開源軟體MySQL - 1.1開源軟體的故事(1)MySql
- 塗抹MySQL--第6章 開源運動與開源軟體MySQL - 6.1字符集和校對規則MySql
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(3)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(2)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(1)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.4帳戶安全管理MySql資料庫
- 商業軟體與開源“混合”有利開源運動持續發展(轉)
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(1)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(2)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(3)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.1談談許可權處理邏輯MySql資料庫
- 《塗抹MySQL》目錄MySql
- 開源力量公開課第37期-《微軟+開源:如何使用微軟公有云Azure上的開源軟體》微軟
- 開源中國的 IT 公司開源軟體整理-3
- MySQL等開源軟體企業版MySql
- 開源中國的 IT 公司開源軟體整理列表-1
- 雲端計算正在“抹殺”開源?
- 中國軟體“成也開源,敗也開源”?
- 開源軟體伸向移動裝置
- 阿里開源Mysql分散式中介軟體:Cobar阿里MySql分散式
- Twitter 的那些開源軟體
- 開源與商業化的愛恨糾葛,從自由軟體運動說起(上)
- 開源軟體推介(二)
- 開源備份軟體
- 何為開源,聊聊軟體開發中的那些開源協議協議
- 開源 | MySQL資料傳輸中介軟體—DTLEMySql
- 求教牛人們 開源軟體 與 商業軟體的問題
- 4 款基於Django框架的開源軟體推薦Django框架
- 開源軟體的真正定義
- 開源的天文軟體Stellarium MacMac
- 開源軟體的易用性
- 塗抹MySQL自序 - 輪扁斫輪MySql
- [深圳] 華為開源軟體部招聘開源社群專家