網站資料庫是選擇 MariaDB5 好呢?還是選擇 MariaDB10 比較好?
網站使用PHP程式設計,那資料庫是選擇 MariaDB5 好呢?還是選擇 MariaDB10 比較好?
MySQL的孿生兄弟支援NoSQL為大資料鋪路,SSD與快閃記憶體成為資料庫效能翻倍利器!
MariaDB 10新版大躍進:
MySQL的孿生兄弟MariaDB發布最新版本,大幅增加對大資料的支援。
日前MySQL的孿生兄弟MariaDB 發布全新版本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帶來效能與管理功能的改善,為了鼓勵社群的參與,並遵循儘早釋出的宗旨,甲骨文縮短從意見回饋到交付的周期,讓使用者能更快存取強化的產品功能及品質。
什麼是NoSQL資料庫?
Web2.0概念的成熟發展促成了NoSQL資料庫的興起。過去幾年使用者網路行為的改變,挑戰了關聯式資料庫的效能和彈性,因應爆量讀寫頻繁的需求,NoSQL的概念重新被提出,NoSQL資料庫的特色是不使用SQL當作查詢語言、動態列儲存及分散式架構等。
關聯式資料庫的操作具有ACID的特性
第一、不可分割性(Atomicity),在一次的交易(Transaction),操作必須全部成功,一旦發生錯誤,所有資料更動將回復到交易之前,不容許有中間狀態。
第二、一致性(Consistency),所有的交易,都必須遵守資料庫設定規則。
第三、獨立性 (Isolation)資料交易進行中,不受其他交易影響。
第四、持久性(Durability),交易成功後,所做的任何變更都會被永久保存。
這些特性在金融交易很重要,可以確保其過程安全及結果的可靠性,而過去的靜態網頁的資料庫操作,讀取比例遠高於寫入,在關聯式資料庫也是沒有問題的。
但近年盛行的網路服務,如社群網站、社群遊戲甚至是網路遊戲,龐大的使用者規模以及頻繁互動的操作模式,關聯式資料庫的可靠性無用武之地,反而成為效能瓶頸。
以社群網站Facebook為例,全球十幾億用戶,所有的使用操作都會被寫入資料庫中,包括塗鴉牆上編輯訊息、即時訊息對話、任意的連結點擊和對應用程式的喜好等。
Facebook每月要處裡幾百億筆巨量的資料,如果使用關聯性資料庫,ACID的規則將會嚴重的影響資料庫效能,以至於降低使用者操作經驗。
此外,NoSQL資料庫的分散式架構,有助於紀錄被有策略的複製到世界各地的資料中心,以縮短全球使用者存取Facebook資料的時間。
NoSQL資料庫因其分散式架構,容量容易擴充,但資料更新可能會有不同步的狀況,對此NoSQL資料庫採用資料遲早會一致(Eventually Consistency)的做法。
不同資料庫伺服器,或許資料會因時間差而不同,但終究會同步。
關聯式資料庫必須遵守ACID的特性,NoSQL資料庫應用上更具彈性,兩類型資料庫系統沒有優劣之分,只有需求考量不同。
MariaDB5 的新版本是: MariaDB10 當然升級使用新版本,是比較優異(沒有版本是越改越差的吧?)