中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL BlackHole引擎的概念和使用場景

發布時間:2021-09-13 09:11:42 來源:億速云 閱讀:194 作者:chen 欄目:MySQL數據庫

本篇內容介紹了“MySQL BlackHole引擎的概念和使用場景”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

概念

像MyISAM、InnoDB,BlackHole是另一種MySQL引擎,從字面意思來看,
其表現就像一個黑洞,只進不出,進來就消失。換句話說,任何往其中寫的數據都將丟失,有點像Linux的/dev/null
比如一個表test的引擎是BlackHole,任何對這個表的insert都將丟失,
對它的select永遠返回空集,對應的數據目錄下只有一個test.frm文件,且沒有其他文件與之關聯。

使用場景

一個并不保存任何數據的引擎,到底有什么意義?
關鍵在于,雖然其不保存數據,但對數據庫的操作仍舊記錄在binlog日志中。
這就帶來一個好處,可以將其作為主從復制的中介,將原來從主庫中同步的操作變為從作為中介的BlackHole引擎數據庫中同步。

1.作為偽主庫分擔主庫負擔

眾所周知,當從庫比較多的時候,所有從庫都從主庫load數據將加重主庫的負擔。但如果是從BlackHole的偽主庫中同步就可以減輕主庫的負擔。原有主從架構大概就像下面這樣:

MySQL BlackHole引擎的概念和使用場景

現在,BlackHole偽主庫作為中介,變成這樣:

MySQL BlackHole引擎的概念和使用場景

特別是,可以在偽主庫中配置replicate-do和replicate-ignore規則,過濾不需要同步的表。

2.作為binlog日志收集器

其不保存實際數據,只記錄binlog的特性,使得該引擎可用于binlog日志收集,便于數據庫分析。
相關知識:binlog日志的format有三種:row,statement,mixed。
row的方式記錄每一行被改變的記錄,也就說,update將記錄所有符合條件被修改的行,alter table更慘,相當于重建整個表,記錄所有行的改變。所以這種格式下日志容易過大;
statement的方式只記錄改變數據的SQL,沒有row方式的問題,但其會記錄該SQL執行的上下文信息,有個不好的地方是,該上下文信息在另一端重現的時候,容易因為較復雜的信息負責出錯。
mixed的方式綜合row和statement的方式。

配置

在偽庫中,需要如下配置:
配置默認類型為BlackHole,可以用
default_table_type = BLACKHOLE
或是
default-storage-engine = BLACKHOLE
打開binlog:log-bin  = ms-mysql-bin
特別要配置:log-slave-update  = 1,只有這樣,主庫中的操作才會同步到BlackHole的binlog中,否則,只有直接針對BlackHole的操作才會記錄到binlog。
忽略InnoDB:skip-innodb,當建表語句帶有engine=innodb時,將使用默認的BlackHole引擎。
需要提醒的是,當采用這種架構時,數據同步多了中間一層,需要進一步考慮延遲問題。

“MySQL BlackHole引擎的概念和使用場景”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庆安县| 元氏县| 万源市| 宕昌县| 北京市| 玛沁县| 宜都市| 泸溪县| 呼伦贝尔市| 乌海市| 嘉定区| 盐亭县| 门源| 公安县| 永和县| 老河口市| 高州市| 田东县| 凭祥市| 张家界市| 安乡县| 江西省| 金华市| 四平市| 湖北省| 林口县| 东至县| 临漳县| 桃园市| 普安县| 依兰县| 比如县| 驻马店市| 涿鹿县| 新余市| 星座| 桂林市| 泸水县| 泰州市| 苍山县| 弥勒县|