發(fā)布于:2021-01-27 11:42:51
0
249
0
作為clustercontrol1.5版本的一部分,我們現(xiàn)在提供對MariaDB版本10.2的完全支持。這個新版本提供了與Galera Cluster(MariaDB的HA解決方案)更大的集成,還增強了類似SQL的窗口函數(shù)、公共表表達式和JSON函數(shù)。
MariaDB是增長最快的開放源代碼數(shù)據(jù)庫,通過它在每個主要的Linux發(fā)行版中的應(yīng)用,它覆蓋了全球超過6000萬的開發(fā)人員,并且在世界領(lǐng)先的云提供商中也有越來越多的應(yīng)用。它在Linux發(fā)行版和云平臺上的廣泛使用,以及它的易用性,使得MariaDB迅速成為現(xiàn)代企業(yè)的開源數(shù)據(jù)庫標準。
MariaDB服務(wù)器在最近的OpenStack調(diào)查中被列為當今使用的第一和第二大數(shù)據(jù)庫技術(shù)。
10.2版有什么新功能?
mariadbserver10.1引入了Galera集群的默認內(nèi)置集成,允許其用戶實現(xiàn)最終的高可用性。Severlnines是這種集群技術(shù)的早期采用者,很高興看到MariaDB將其用于HA。
以下是MariaDB宣布的10.2新版本中包含的一些增強功能:
窗口函數(shù),通用表表達式和JSON函數(shù)之類的SQL增強功能為MariaDB Server提供了新的用例。
標準MariaDB Server復(fù)制具有進一步的優(yōu)化。
刪除了許多區(qū)域限制,這使使用更容易,并且不需要在應(yīng)用程序級別進行限制處理。
引入了由Facebook開發(fā)的新存儲引擎MyRocks,它將進一步豐富MariaDB Server的用例(注:該新存儲引擎現(xiàn)在也可用于ClusterControl中的MariaDB部署,但是ClusterControl尚不支持MyRocks特定的監(jiān)視)。
窗口功能
窗口功能在商業(yè)智能(BI)中很流行,在BI中,需要根據(jù)數(shù)據(jù)的子集(如國家或銷售團隊指標)生成更復(fù)雜的報告。另一個常見的用例是,基于時間序列的數(shù)據(jù)應(yīng)該基于一個時間窗口進行聚合,而不僅僅是一個當前記錄,就像某個時間跨度內(nèi)的所有行一樣。
隨著分析對最終用戶越來越重要,窗口函數(shù)提供了一種編寫性能優(yōu)化的分析SQL查詢的新方法,這種方法易于閱讀和維護,并且無需編寫昂貴的子查詢和自連接。
常用表表達式
分層和遞歸查詢通常使用公共表表達式(cte)實現(xiàn)。它們類似于FROM子句中的派生表,但是通過使用identification關(guān)鍵字,優(yōu)化器可以生成更高效的查詢計劃。作為自動創(chuàng)建的臨時和命名結(jié)果集(僅在查詢時有效),它可以用于遞歸和分層執(zhí)行,還允許重用臨時數(shù)據(jù)集。擁有一個專用的方法也有助于創(chuàng)建更具表現(xiàn)力和更清晰的SQL代碼。
JSON函數(shù)
JSON(JavaScript Object Notation)是一種基于文本的、與平臺無關(guān)的數(shù)據(jù)交換格式,它不僅用于交換數(shù)據(jù),還可以作為存儲非結(jié)構(gòu)化數(shù)據(jù)的一種格式。MariaDB server10.2提供了超過24個JSON函數(shù),允許查詢、修改、驗證和索引JSON格式的數(shù)據(jù),這些數(shù)據(jù)存儲在數(shù)據(jù)庫的基于文本的字段中。因此,MariaDB強大的關(guān)系模型可以在需要時通過處理非結(jié)構(gòu)化數(shù)據(jù)來豐富。
通過使用虛擬列、JSON函數(shù)、JSON_值和MariaDB Server 10.2在虛擬列上的最新索引功能,JSON值將自動從JSON字符串中提取,存儲在虛擬列中并索引,從而提供對JSON字符串的最快訪問。
使用JSON函數(shù)JSONu VALID,MariaDB Server 10.2中的新檢查約束保證只能將正確JSON格式的JSON字符串添加到字段中。
基于二進制日志的回滾
MariaDB Server 10.2提供的增強mysqlbinlog實用程序包括一個新的時間點回滾函數(shù),該函數(shù)允許數(shù)據(jù)庫或表恢復(fù)到以前的狀態(tài),并提供基于二進制日志的已提交數(shù)據(jù)回滾。mysqlbinlog工具沒有直接修改任何數(shù)據(jù),而是生成一個“導(dǎo)出文件”,包括事務(wù)的還原語句,記錄在二進制日志文件中。創(chuàng)建的文件可以與命令行客戶機或其他SQL工具一起使用,以執(zhí)行包含的SQL語句。這樣,所有提交到給定時間戳的事務(wù)都將回滾。
在解決添加、更改或刪除數(shù)據(jù)等邏輯錯誤的情況下,到目前為止,唯一可能的方法是使用mysqlbinlog檢查事務(wù)并手動修復(fù)問題。但是,這通常會導(dǎo)致數(shù)據(jù)不一致,因為更正通常只處理錯誤的語句,從而忽略其他數(shù)據(jù)依賴關(guān)系。
通常由DBA或用戶錯誤引起,恢復(fù)一個巨大的數(shù)據(jù)庫會導(dǎo)致服務(wù)的嚴重中斷。使用時間點回滾回滾上一個事務(wù)只需要提取、簡短的檢查和執(zhí)行還原的事務(wù)的時間—節(jié)省了寶貴的時間、資源和服務(wù)。
為什么選擇MariaDB?
有幾個MySQL選項可供選擇,為什么選擇MariaDB作為應(yīng)用程序的技術(shù)?以下是選擇MariaDB的一些好處:
MariaDB建立在一個現(xiàn)代的體系結(jié)構(gòu)之上,它可以擴展到每一層:客戶機、集群、內(nèi)核和存儲。這種可擴展性提供了兩個主要優(yōu)點。它允許通過插件進行持續(xù)的社區(qū)創(chuàng)新,并使客戶能夠輕松地配置MariaDB,以支持從OLTP到OLAP的各種各樣的用例。
MariaDB開發(fā)的特性和增強功能是其自己的路線圖的一部分,獨立于Oracle/MySQL。這使得MariaDB能夠接受和吸引更廣泛的社區(qū)創(chuàng)新,并添加內(nèi)部開發(fā)的新功能,使其更容易從專有系統(tǒng)遷移到開源MariaDB。
MariaDB的設(shè)計旨在保護每一層的數(shù)據(jù)庫,使其成為一個可信任的通用數(shù)據(jù)庫,用于需要最高級別安全功能的行業(yè),如政府和銀行業(yè)。
MariaDB提供對各種存儲引擎的支持,包括NoSQL支持,為用戶提供多種選擇,以確定最適合其環(huán)境的選項。
MariaDB部署了許多性能增強改進,包括查詢優(yōu)化,在一些基準測試中,讓MariaDB的性能比配置類似的MySQL環(huán)境高3-5%。
MariaDB的ClusterControl
ClusterControl為每種頂級技術(shù)提供支持:
MariaDB服務(wù)器:MariaDB服務(wù)器是一個通用數(shù)據(jù)庫,采用可擴展架構(gòu)設(shè)計,通過可插拔存儲引擎(如InnoDB、MyRocks和Spider)支持廣泛的用例集。
內(nèi)置異步主/從復(fù)制
允許不同行在同一列中存儲不同數(shù)據(jù)的動態(tài)列
內(nèi)置加密
查詢優(yōu)化
改進了模式兼容性
MariaDB群集:MariaDB群集是為當今的基于云的環(huán)境。它具有完全的讀寫可擴展性,具有同步復(fù)制功能,允許多主拓撲結(jié)構(gòu),并保證沒有延遲或丟失事務(wù)。
同步復(fù)制,沒有從屬延遲或事務(wù)丟失
雙活多主拓撲
讀寫任何集群節(jié)點
自動成員資格控制,故障節(jié)點從集群中刪除
自動節(jié)點加入
真正的行級并行復(fù)制
直接客戶端連接,本機MariaDB外觀
讀寫可擴展性
MariaDB MaxScale: MariaDB MaxScale是一種數(shù)據(jù)庫代理,可擴展MariaDB Server的高可用性,可伸縮性和安全性,同時通過將其與基礎(chǔ)數(shù)據(jù)庫基礎(chǔ)架構(gòu)分離而簡化了應(yīng)用程序開發(fā)。
包括數(shù)據(jù)庫防火墻和DoS保護
讀寫分離
數(shù)據(jù)屏蔽
基于架構(gòu)的分片
查詢緩存