久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      你對MySQL BlackHole引擎有多少了解?

      概念

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

      使用場景

      一個并不保存任何數(shù)據(jù)的引擎,到底有什么意義?
      關鍵在于,雖然其不保存數(shù)據(jù),但對數(shù)據(jù)庫的操作仍舊記錄在binlog日志中。
      這就帶來一個好處,可以將其作為主從復制的中介,將原來從主庫中同步的操作變?yōu)閺淖鳛橹薪榈腂lackHole引擎數(shù)據(jù)庫中同步。

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

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

      你對MySQL BlackHole引擎有多少了解?

      現(xiàn)在,BlackHole偽主庫作為中介,變成這樣:

      你對MySQL BlackHole引擎有多少了解?

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

      2.作為binlog日志收集器

      其不保存實際數(shù)據(jù),只記錄binlog的特性,使得該引擎可用于binlog日志收集,便于數(shù)據(jù)庫分析。
      相關知識:binlog日志的format有三種:row,statement,mixed。
      row的方式記錄每一行被改變的記錄,也就說,update將記錄所有符合條件被修改的行,alter table更慘,相當于重建整個表,記錄所有行的改變。所以這種格式下日志容易過大;
      statement的方式只記錄改變數(shù)據(jù)的SQL,沒有row方式的問題,但其會記錄該SQL執(zhí)行的上下文信息,有個不好的地方是,該上下文信息在另一端重現(xiàn)的時候,容易因為較復雜的信息負責出錯。
      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引擎。
      需要提醒的是,當采用這種架構時,數(shù)據(jù)同步多了中間一層,需要進一步考慮延遲問題。

      推薦學習:《mysql視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號