日前MySQL的孿生兄弟MariaDB於3月31日發布全新版本10,從這版本開始與MySQL的發展分道揚鑣,MariaDB 10走出自己的道路,此次大幅度的更新,增加對大資料的支援,甚至與Fusion-io策略聯盟,與前一個版本相比,MariaDB 10在效能以及功能上都有長足的進步。
Michael Widenius(網路代號:Monty)同為MySQL與MariaDB的創辦人,2008年他以10億美元的代價將MySQL出售給昇陽,兩年後甲骨文併購昇陽,MySQL經二度轉手。在甲骨文的經營下,原本主張開源的MySQL轉趨封閉,由於Michael Widenius對此策略不認同,因而分支出與MySQL 5.5完全相容的MariaDB 5.5。
而後SKySQL 和MariaDB的原開發公司Monty Program Ab合併,重新集結開創MySQL的元老,共同開發MariaDB 10,從5.5直接跳躍到10的版本號變化也反映了,MariaDB擺脫過去舊包袱以全新的面貌進軍市場的企圖。
MariaDB 10為大資料布局
MariaDB 10主要增加了3項新特色,第一、新增高效複製功能。由於MariaDB 10可以平行複製資料以及更先進的集體提交功能(Group Commit),根據MariaDB官網,新版效能將是前版本的數倍,而也因為平行複製的功能,使用者可以即時查詢來自許多大型資料表所組合的資料表。
第二、增加原生NoSQL支援。新版增加了Connect 引擎來做外部資料管理。Connect引擎的用途就像橋一樣,可動態存取非結構性檔案或是支援ODBC的資料庫,甚至還可以直接存取Cassandra這類型NoSQL資料庫系統,並與其他大資料技術介接,除此之外,也支援常見的NoSQL資料欄位導向技術。
第三、內建分片(Sharding)功能,MariaDB 10的Spider 引擎,可以將大型資料庫的表格分割儲存到不同的伺服器上,提升對分散式架構的支援,日後只要增加伺服器,便可增加資料庫容量。
MariaDB 10與Fusion-io合作提升資料庫效能
另外,MariaDB也與Fusion-io公司形成策略聯盟,發布支援Fusion-io儲存設備的MariaDB版本,由於Fusion-io推出NVM壓縮技術,克服快閃記憶體的先天存取限制,不會因為修改已壓縮的資料,而造成複雜的邏輯運算,突破資料在硬體讀寫時的速度瓶頸,同時也能延長快閃記憶體使用的壽命。
MariaDB為Fusion-io特製的版本,可以善加利用NVM壓縮技術,根據官網表示,此舉大幅降低寫入次數,使的資料庫的效能得以提升。
不少支持開源的廠商放棄MySQL,轉向使用MariaDB
由於甲骨文對MySQL程式發展的不積極作為,以及開源策略漸趨封閉下,不少原本使用MySQL的企業,害怕遭受甲骨文箝制,再加上MariaDB排除了過去大家對MySQL可擴展性的疑慮,紛紛轉而使用MariaDB。
目前WikiMedia 基金會、openSUSE、Fedora、Google、WordPress等知名網路服務商,均公開表示已從MySQL轉而使用MariaDB。
MySQL跟進與硬體廠商合作的趨勢
甲骨文近期也釋出開放源碼的最新關聯性資料庫版本MySQL 5.7.4 DMR(Development Milestone Release),強調為了符合現代雲端與嵌入應用的需求,大幅改善了MySQL的效能、擴展性與可靠性,在標竿測試中其查詢速度是MySQL 5.6的兩倍、MySQL 5.5的3倍。
另外甲骨文也同樣能支援Fusion-io儲存產品的FVM壓縮技術來加速資料庫存取效能。
在效能與擴展性上,MySQL 5.7.4針對固態硬碟強化了效能與吞吐量,改善InnoDB緩衝區與元資料鎖定,強化其半同步的複製效能,其每秒查詢速度是5.6版的2倍,5.5版的3倍。在管理功能上,帶來更精確的成本計算,改善效能架構,並有符合AES標準的256bit加密及新的密碼管理選項。
降低其他資料庫轉換到MySQL的成本
此外,為了確保高可得性並管理多個MySQL伺服器的MySQL Fabric具備了故障自動偵測及轉移功能;可供圖形化管理的MySQL Workbench 6.1新增效能評估與最佳化查詢功能,亦可讓用戶輕易自微軟的SQL Server移轉至MySQL,並宣稱可節省最高90%的整體擁有成本。
MySQL工程副總裁Tomas Ulin表示,MySQL 5.7帶來效能與管理功能的改善,為了鼓勵社群的參與,並遵循儘早釋出的宗旨,甲骨文縮短從意見回饋到交付的周期,讓使用者能更快存取強化的產品功能及品質。文⊙李建興、陳曉莉
<BOX>什麼是NoSQL資料庫
Web2.0概念的成熟發展促成了NoSQL資料庫的興起。過去幾年使用者網路行為的改變,挑戰了關聯式資料庫的效能和彈性,因應爆量讀寫頻繁的需求,NoSQL的概念重新被提出,NoSQL資料庫的特色是不使用SQL當作查詢語言、動態列儲存及分散式架構等。
關聯式資料庫的操作具有ACID的特性,第一、不可分割性(Atomicity),在一次的交易(Transaction),操作必須全部成功,一旦發生錯誤,所有資料更動將回復到交易之前,不容許有中間狀態,第二、一致性(Consistency),所有的交易,都必須遵守資料庫設定規則,第三、獨立性 (Isolation)資料交易進行中,不受其他交易影響,第四、持久性(Durability),交易成功後,所做的任何變更都會被永久保存。這些特性在金融交易很重要,可以確保其過程安全及結果的可靠性,而過去的靜態網頁的資料庫操作,讀取比例遠高於寫入,在關聯式資料庫也是沒有問題的。
但近年盛行的網路服務,如社群網站、社群遊戲甚至是網路遊戲,龐大的使用者規模以及頻繁互動的操作模式,關聯式資料庫的可靠性無用武之地,反而成為效能瓶頸。
以社群網站Facebook為例,全球十幾億用戶,所有的使用操作都會被寫入資料庫中,包括塗鴉牆上編輯訊息、即時訊息對話、任意的連結點擊和對應用程式的喜好等,Facebook每月要處裡幾百億筆巨量的資料,如果使用關聯性資料庫,ACID的規則將會嚴重的影響資料庫效能,以至於降低使用者操作經驗。此外,NoSQL資料庫的分散式架構,有助於紀錄被有策略的複製到世界各地的資料中心,以縮短全球使用者存取Facebook資料的時間。
NoSQL資料庫因其分散式架構,容量容易擴充,但資料更新可能會有不同步的狀況,對此NoSQL資料庫採用資料遲早會一致(Eventually Consistency)的做法,不同資料庫伺服器,或許資料會因時間差而不同,但終究會同步。
關聯式資料庫必須遵守ACID的特性,NoSQL資料庫應用上更具彈性,兩類型資料庫系統沒有優劣之分,只有需求考量不同。文⊙李建興
熱門新聞
2024-11-29
2024-11-20
2024-11-15
2024-11-15
2024-12-19