自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MariaDB:真正的實時同步數(shù)據(jù)庫,MySQL要小心了

數(shù)據(jù)庫 MySQL MariaDB
無論是采用binlog或者GTID的方式,其本質都是通過I/O_thread和sql_thread的形式進行的同步,因為無法避免復制延遲而飽受詬病,基于上述MariaDB引入了Galera Cluster來解決此問題。

 

一、背景介紹

無論是采用binlog或者GTID的方式,其本質都是通過I/O_thread和sql_thread的形式進行的同步,因為無法避免復制延遲而飽受詬病,基于上述MariaDB引入了Galera Cluster來解決此問題。

二、Galera Cluster介紹

Galera Cluster與傳統(tǒng)的復制方式不同,不通過I/O_thread和sql_thread進行同步,而是在更底層通過wsrep實現(xiàn)文件系統(tǒng)級別的同步,可以做到幾乎實時同步,而其上的MySQL對此一無所知

 

這就要求MySQL能夠調用wsrep提供的API來完成,在Mariadb10.1之前的版本,支持Galera Cluster的版本是與Mariadb分開發(fā)行的,其版本名稱就成為Mariadb-Galera,Mariadb10.1以后的版本中MariaDB Galera Cluste不再單獨發(fā)行,而是以galera-25.3.12-2.el7.x86_64包的形式出現(xiàn)方面都強過MySQL。

MariaDB Galera Cluster主要功能

同步復制:真正的multi-master,即所有節(jié)點可以同時讀寫數(shù)據(jù)庫自動的節(jié)點成員控制,失效節(jié)點自動被清除新節(jié)點加入數(shù)據(jù)自動復制真正的并行復制,行級用戶可以直接連接集群,使用感受上與MySQL完全一致

MariaDB Galera Cluster的優(yōu)缺點

1.優(yōu)勢:

  • 因為是多主,所以不存在Slavelag(延遲)
  • 不存在丟失事務的情況
  • 同時具有讀和寫的擴展能力
  • 更小的客戶端延遲
  • 節(jié)點間數(shù)據(jù)是同步的,而Master/Slave模式是異步的,不同slave上的binlog可能是不同的

2.缺點:

  • 加入新節(jié)點時開銷大,需要復制完整的數(shù)據(jù)
  • 不能有效地解決寫擴展的問題,所有的寫操作都發(fā)生在所有的節(jié)點
  • 有多少個節(jié)點,就有多少份重復的數(shù)據(jù)
  • 由于事務提交需要跨節(jié)點通信,即涉及分布式事務操作,因此寫入會比主從復制慢很多,節(jié)點越多,寫入越慢,死鎖和回滾也會更加頻繁
  • 對網(wǎng)絡要求比較高,如果網(wǎng)絡出現(xiàn)波動不穩(wěn)定,則可能會造成兩個節(jié)點失聯(lián),Galera Cluster集群會發(fā)生腦裂,服務將不可用

還有一些地方存在局限:

  1. 僅支持InnoDB/XtraDB存儲引擎,任何寫入其他引擎的表,包括mysql.*表都不會被復制。但是DDL語句可以復制,但是insert into mysql.user(MyISAM存儲引擎)之類的插入數(shù)據(jù)不會被復制
  2. Delete操作不支持沒有主鍵的表,因為沒有主鍵的表在不同的節(jié)點上的順序不同,如果執(zhí)行select … limit …將出現(xiàn)不同的結果集
  3. LOCK/UNLOCK TABLES/FLUSH TABLES WITH READ LOCKS不支持單表所鎖,以及鎖函數(shù)GET_LOCK()、RELEASE_LOCK(),但FLUSH TABLES WITH READ LOCK支持全局表鎖
  4. General Query Log日志不能保存在表中,如果開始查詢?nèi)罩?,則只能保存到文件中
  5. 不能有大事務寫入,不能操作wsrep_max_ws_rows=131072(行),且寫入集不能超過wsrep_max_ws_size=1073741824(1GB),否則客戶端直接報錯
  6. 由于集群是樂觀鎖并發(fā)控制,因此,在commit階段會有事務沖突發(fā)生。如果兩個事務在集群中的不同節(jié)點上對同一行寫入并提交,則失敗的節(jié)點將回滾,客戶端返回死鎖報錯
  7. XA分布式事務不支持Codership Galera Cluster,在提交時可能會回滾
  8. 整個集群的寫入吞吐量取決于最弱的節(jié)點限制,集群要使用同一的配置

三、 MariaDB與Mysql的對比

1.MariaDB發(fā)展趨勢和更新頻率

畢竟基于MySQL創(chuàng)始人領銜開發(fā)的MariaDB數(shù)據(jù)庫,肯定是知道MYSQL數(shù)據(jù)庫存在的弱項,然后提供更好的兼容性和擴展性,我們基本上完全可以將MYSQL數(shù)據(jù)庫建議到MariaDB數(shù)據(jù)庫中,而且MariaDB發(fā)展速度和升級速度遠遠優(yōu)先。

2.MySQL封閉且發(fā)展緩慢

由于MySQL在被收購之后更新速度與性能的優(yōu)化非常的緩慢,而且是閉源的,完全沒有Oracle之外的人參與進來,很多需要解決的問題都沒有升級進去,反之很多公司雖然也有利用自己開發(fā)的分支Mysql版本。

3.MariaDB的特點和優(yōu)勢

MariaDB基于事務的Maria存儲引擎,替換了MySQL的MyISAM存儲引擎,它使用了Percona的 XtraDB,InnoDB的變體,MariaDB默認的存儲引擎是Aria,不是MyISAM。Aria可以支持事務,但是默認情況下沒有打開事務支持,因為事務支持對性能會有影響。MariaDB是一個采用Maria存儲引擎的MySQL分支版本,是由原來 MySQL 的作者Michael Widenius創(chuàng)辦的公司所開發(fā)的免費開源的數(shù)據(jù)庫服務器。

4.MariaDB與MySQL對比

這個直觀的區(qū)別在于MariaDB能夠快速的查詢和處理數(shù)據(jù),且占用資源相對是少于MySQL數(shù)據(jù)庫的,而且在運行速度、以及支持對 Unicode 的排序問題優(yōu)于MYSQL數(shù)據(jù)庫。

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2018-09-07 23:23:55

MYSQL開源代碼

2020-09-21 11:30:28

CanalMySQL數(shù)據(jù)庫

2010-05-17 14:00:07

MySql數(shù)據(jù)庫

2010-06-02 16:57:50

MySQL數(shù)據(jù)庫同步

2015-07-16 17:00:15

MySQLMariaDBPercona

2010-05-12 18:41:34

MySQL數(shù)據(jù)庫

2011-05-25 10:13:54

MariaDB

2017-05-25 08:52:08

SQL Server數(shù)據(jù)庫

2010-06-09 15:01:18

MySQL數(shù)據(jù)庫同步

2010-06-09 17:36:45

MySQL數(shù)據(jù)庫同步

2010-06-12 17:55:23

MySQL數(shù)據(jù)庫同步

2020-11-14 11:28:20

MariaDB MySQL數(shù)據(jù)庫

2024-10-30 08:15:18

2021-06-03 21:54:33

數(shù)據(jù)庫框架緩存

2020-08-31 07:00:00

數(shù)據(jù)庫數(shù)據(jù)庫同步

2019-10-08 15:54:42

SQL數(shù)據(jù)庫技術

2024-10-18 11:39:55

MySQL數(shù)據(jù)檢索

2010-05-19 16:31:38

MySQL數(shù)據(jù)庫

2010-07-01 15:44:22

SQL Server數(shù)

2024-12-06 08:29:29

點贊
收藏

51CTO技術棧公眾號