天天看點

老男孩教育每日一題-第83天-binlog是什麼?記錄的什麼?有幾種工作模式及企業應用場景

參考答案

binlog:是用于記錄所有更新了資料的操作語句,語句以事件的形式儲存,它描述資料的更改過程

作用:用于實時備份資料,資料庫的主從複制

log_bin 打開記錄binlog功能

能過binlog參數expire_logs_days來實作

日志會記錄每一行資料被修改的形式,然後在從端對相同的資料進行修改

優點:可以不記錄執行SQL語句上下文相關的資訊,隻記錄哪一條資料被修改,修改成什麼樣了

缺點:所有執行的語句都當記錄到日志檔案中,而且都會以每行記錄的修改來記錄,會産生大量的日志内容

每一條修改資料的SQL都會記錄master的bin-log中,slave在複制的時候SQL程序會解析成和原來master端執行過的相同的SQL來執行

優點:解決了上row level模式的缺點,不需要記錄每一行資料的變化,減少日志量,可以得高性能

缺點:由于記錄的是執行語句,在此模式下會有主從無法複制的問題出現

MYSQL會根據執行的每一條具體SQL語句來區分對待記錄的日志格式,

1)如果不會用到mysql特殊的功能,基本都是預設的模式statement模式

2)如果會到mysql的一些特殊功能,基本都是會使用row level模式

備注

今天是每日一題陪伴大家的第84天,期待你的進步。

對于題目和答案的任何疑問,請在部落格評論區留言。

往期題目索引

<a href="http://lidao.blog.51cto.com/3388056/1914205" target="_blank">http://lidao.blog.51cto.com/3388056/1914205</a>

本文轉自 李導 51CTO部落格,原文連結:http://blog.51cto.com/lidao/1944558