標籤:

MySQL與主流分支版本簡介

MySQL與主流分支版本簡介

本文主要介紹MySQL 5.6和MySQL 5.7這兩個Oracle公司開發的代表作品。為了讓大家先對MySQL有一個基礎的認識,我們先來看一看MySQL的發展歷程。

1999年至2000年,Monty成立了MySQL AB這家公司。2000 年,MySQL公布了自己的源代碼,並採用GPL(GNU General Public License)許可協議,正式進入開源的世界。 2001年至2007年是MySQL開源飛速發展的7年,尤其是在2005年10月發布了一個里程碑式的版本MySQL 5.0。

5.0版本中加入了存儲過程、伺服器端游標、觸發器、視圖、分散式事務(Xa transactions)、查詢優化器的顯著改進以及其他的一些特性。這也為MySQL 5.0之後的版本奠定了邁向高性能資料庫的發展基礎。2008年1月16號Sun收購了MySQL,花了10億美元。之後不久,2009年4月20日Oracle收購了Sun公司。隨之MySQL就變成了Oracle旗下的一個產品,之後就是我們所熟悉的MySQL 5.5、5.6、5.7這些版本了。

確切一點說,MySQL 5.5應該是Sun和Oracle之間的一個過渡版本,實際上MySQL 5.6才是Oracle開發的第一個版本,在MySQL 5.6的基礎上,Oracle對MySQL進行了一次強悍的加工,才有了 MySQL 5.7的問世。

MySQL主流的分支版本

目前業界的MySQL主流分支版本有Oracle官方版本的MySQL、Percona Server、MariaDB。接下來看一下各個分支的特點。

1 . 官方版本的MySQL

目前官網最新的GA版就是MySQL 5.7,也是推薦大家在生產環境中使用的一個版本。它無論是在InnoDB存儲引擎性能和功能上的提升,還是安全性上的加固、複製功能、sys schema庫的增強等都改進得相當出色。目前還在開發的是MySQL 8.0,這個版本可能是MySQL資料庫又一個開拓時代的開始。MySQL不像Oracle資料庫的版本跳度那麼大,Oracle是8i、9i、10g、11g、12c這樣的一個版本迭代速度,而MySQL在大版本上一直沒有什麼變化。從MySQL 5.0、5.1、5.5、5.6直到目前最成熟的MySQL 5.7都基於5這個大版本,升級其小版本。所以這次研發的8.0版是一個新時代的開始,雖然MySQL 8.0在新特性上沒有新元素的加入,但是它對MySQL的源代碼進行了重構,最突出的一點就是對MySQL Optimizer優化器的改進,支持隱藏索引等功能。針對優化器的改進是在之前的版本中從來沒有觸碰過的。而且MySQL 8.0為了對優化器做更多的特性支持,還加入了性能直方圖這個新的元素,讓MySQL Server層和存儲引擎層配合得更加緊密。MySQL 8.0之後我們就真的要和MyISAM這個存儲引擎說再見了,想想這些改變就讓人興奮,就讓我們一起期待著它的問世吧。

MySQL在5.1版本被Oracle收購之後,發展到今天有了突飛猛進的變化。官方版本的MySQL未來有太多值得大家期待的地方。

讓我們來看一下MySQL 5.5、5.6、5.7的性能對比圖,這樣可以更加直觀地觀察到這些年的發展變化。

在OLTP只讀模式下,MySQL 5.7比MySQL 5.6快近3倍的速度,MySQL 5.6比MySQL 5.5快近1.5倍的速度,而且5.7有將近100萬的QPS(每秒的查詢量),如圖。

基準測試只讀模式下的QPS顯示圖

在OLTP讀寫模式下,MySQL 5.7比MySQL 5.6快近2.5倍的速度,比MySQL 5.5快近3倍的速度,而且5.7有近60萬的QPS,如圖。

基準測試讀寫模式下的QPS顯示圖

2 . Percona Server

Percona Server是MySQL重要的分支之一,它基於InnoDB存儲引擎的基礎上,提升了性能和易管理性,最後形成了增強版的XtraDB引擎,可以用來更好地發揮伺服器硬體上的性能。所以Percona Server也可以稱為增強的MySQL與開源的插件(plugin)的結合。由於官方版本的MySQL在一些特性的使用上有一定的局限性,需要收費。所以Percona Server就有了一定的市場佔有比例,也比較受大家的歡迎。像一些常用的工具包xtrabackup、percona-toolkit等,在生產環境中是DBA的必備武器。還有像XtraDB-Cluster這種支持多點寫入的強同步高可用集群架構,真正實現實時同步的過程,解決了MySQL主從複製之間經常出現並讓人頭疼的延遲問題。而且Percona還收購了TokuDB公司,TokuDB存儲引擎非常優秀,淘寶網、阿里雲上大量在使用這款存儲引擎。它支持數據壓縮,支持hot scheme modification,它的高擴展性和優秀的查詢插入性能都是我們喜歡它的地方。

3 . MariaDB

Mariadb是由MySQL創始人Monty創建的,是一款高度兼容的MySQL產品,主要由開源社區維護,採用GPL授權許可。Oracle把MySQL收購之後,為避免MySQL在開源粒度上的下降,MariaDB由此而生。它不僅僅是MySQL的一個替代品,還創新與提高了MySQL原有的技術。既包含了Percona的XtraDB存儲引擎,還包含TokuDB存儲引擎、Spider水平分片存儲引擎等多種存儲引擎,並且還有一些複製功能上的新特性,比如基於表的並行複製、Multi-source Replication多源複製、Galera Cluster集群。還有比較有意思的一點就是MariaDB有一套Java的管理系統,可以通過投票機制來決定哪些特性和參數是我們需要的。

本文選自《MySQL王者晉級之路》一書。

------------

更多科技資訊請見微信公眾號:博文視點Broadview(微信號:bvbooks)


推薦閱讀:

mongodb操作之用戶篇
MongoDB導入CSV文件
MongoDB在商業使用時會有丟失數據的問題么?
MongoDB的安裝和配置
mongodb-導入導出-執行腳本

TAG:SQL | MySQL | MongoDB |