MySQL binlog三種模式

1.1 Row Level 行模式
日志中會記錄每一行數(shù) 據(jù)被修改的形式,然后在slave端再對相同的數(shù)據(jù)進行修改

優(yōu)點:在row level模式下逗鸣,bin-log中可以不記錄執(zhí)行的sql語句的上下文相關(guān)的信息蜕依,僅僅只需要記錄那一條被修改凌外。所以rowlevel的日志內(nèi)容會非常清楚的記錄下每一行數(shù)據(jù)修改的細節(jié)实束。不會出現(xiàn)某些特定的情況下的存儲過程或function记靡,以及trigger的調(diào)用和觸發(fā)無法被正確復(fù)制的問題

缺點:row level,所有的執(zhí)行的語句當記錄到日志中的時候瓦戚,都將以每行記錄的修改來記錄沮尿,會產(chǎn)生大量的日志內(nèi)容。

1.2 Statement Level(默認)
每一條會修改數(shù)據(jù)的sql都會記錄到master的bin-log中较解。slave在復(fù)制的時候sql進程會解析成和原來master端執(zhí)行過的相同的sql來再次執(zhí)行

優(yōu)點:statement level下的優(yōu)點首先就是解決了row level下的缺點畜疾,不需要記錄每一行數(shù)據(jù)的變化,減少bin-log日志量印衔,節(jié)約IO啡捶,提高性能,因為它只需要在Master上鎖執(zhí)行的語句的細節(jié)奸焙,以及執(zhí)行語句的上下文的信息瞎暑。

缺點:由于只記錄語句,所以与帆,在statement level下 已經(jīng)發(fā)現(xiàn)了有不少情況會造成MySQL的復(fù)制出現(xiàn)問題金顿,主要是修改數(shù)據(jù)的時候使用了某些定的函數(shù)或者功能的時候會出現(xiàn)。

1.3 Mixed 自動模式
在Mixed模式下鲤桥,MySQL會根據(jù)執(zhí)行的每一條具體的sql語句來區(qū)分對待記錄的日志格式揍拆,也就是在Statement和Row之間選擇一種。如果sql語句確實就是update或者delete等修改數(shù)據(jù)的語句茶凳,那么還是會記錄所有行的變更嫂拴。

1.4 企業(yè)場景如何選擇binlog模式
1、互聯(lián)網(wǎng)公司贮喧,使用MySQL的功能相對少(存儲過程筒狠、觸發(fā)器、函數(shù))

選擇默認的語句模式箱沦,Statement Level(默認)

2辩恼、公司如果用到使用MySQL的特殊功能(存儲過程、觸發(fā)器、函數(shù))

則選擇Mixed模式

3灶伊、公司如果用到使用MySQL的特殊功能(存儲過程疆前、觸發(fā)器、函數(shù))又希望數(shù)據(jù)最大化一直聘萨,此時最好選擇Row level模式

行模式和語句模式的區(qū)別
1.語句模式:

100萬條記錄

只需1條delete * from test竹椒;就可以刪除100萬條記錄

2.row模式

100萬條記錄

記錄100萬條刪除命令

1.5 如何配置binlog
在數(shù)據(jù)庫中查看binlog模式

root@oldboy 11:28:05->show global variables like '%binlog_format%';
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0.00 sec)

配置文件參數(shù)如下:

[myslqd]
log-bin=mysql-bin
#binlog_format="STATEMENT"
#binlog_format="ROW"
#binlog_format="MIXED"

運行時在線修改臨時;

mysql>SET GLOBAL binlog_format = 'ROW';
mysql>show global variables like '%binlog_format%';
其他模式命令為:
SET GLOBAL binlog_format = 'MIXED';
SET GLOBAL binlog_format = 'STATEMENT';
解釋:

GLOBAL=全局會話

SESSION=當前會話

檢驗ROW模式下binlog日志記錄效果

[root@db01 3306]# mysqlbinlog --base64-output="decode-rows" --verbose mysql-bin.000248
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#160628 11:06:52 server id 1  end_log_pos 107   Start: binlog v 4, server v 5.5.49-log created 160628 11:06:52 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
# at 107
#160628 11:07:09 server id 1  end_log_pos 177   Query   thread_id=1     exec_time=0     error_code=0
SET TIMESTAMP=1467083229/*!*/;
SET @@session.pseudo_thread_id=1/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=0/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 177
# at 223
#160628 11:07:09 server id 1  end_log_pos 223   Table_map: `oldboy`.`sc` mapped to number 33
#160628 11:07:09 server id 1  end_log_pos 785   Update_rows: table id 33 flags: STMT_END_F
### UPDATE `oldboy`.`sc`
### WHERE
###   @1=1
###   @2=1001
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末米辐,一起剝皮案震驚了整個濱河市胸完,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翘贮,老刑警劉巖赊窥,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異狸页,居然都是意外死亡誓琼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門肴捉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人叔收,你說我怎么就攤上這事齿穗。” “怎么了饺律?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵窃页,是天一觀的道長。 經(jīng)常有香客問我复濒,道長脖卖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任巧颈,我火速辦了婚禮畦木,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砸泛。我一直安慰自己十籍,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布唇礁。 她就那樣靜靜地躺著勾栗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盏筐。 梳的紋絲不亂的頭發(fā)上围俘,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音,去河邊找鬼界牡。 笑死簿寂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的欢揖。 我是一名探鬼主播陶耍,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼她混!你這毒婦竟也來了烈钞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤坤按,失蹤者是張志新(化名)和其女友劉穎毯欣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臭脓,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡酗钞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了来累。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砚作。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嘹锁,靈堂內(nèi)的尸體忽然破棺而出葫录,到底是詐尸還是另有隱情,我是刑警寧澤领猾,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布米同,位于F島的核電站,受9級特大地震影響摔竿,放射性物質(zhì)發(fā)生泄漏面粮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一继低、第九天 我趴在偏房一處隱蔽的房頂上張望熬苍。 院中可真熱鬧,春花似錦袁翁、人聲如沸冷溃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽似枕。三九已至,卻和暖如春年柠,著一層夾襖步出監(jiān)牢的瞬間凿歼,已是汗流浹背褪迟。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留答憔,地道東北人味赃。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像虐拓,于是被迫代替她去往敵國和親心俗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容