二進位制日誌記錄方式
ddl: 資料庫定義語言
dcl: 資料庫控制語言
dml: 資料庫操縱語言
對於ddl記錄的是sql語句,如create、alter、drop等;
對於dcl記錄的是sql語句,如設定或更改資料庫使用者或角色許可權的語句等;
對於dml記錄的是已提交的事務,如如select、update、insert、delete等;
三種記錄方式
sbr模式
以sql語句形式記錄到日誌中。
rbr模式
行模式,記錄資料行的變化,生產中常用。
mbr混合模式,由mysql自己決定使用什麼模式。
三種記錄模式的用法
$ vim /etc/my.cnf
[mysqld]
...binlog_format=statement #可選值還有row,mixed
面試題:sbr和rbr什麼區別?怎麼選擇?
sbr模式:可讀性較強,對於範圍更新語句記錄的日誌量少,但是可能會出現記錄不準確的情況
rbr模式: 可讀性較弱,對於範圍更新語句記錄的日誌量較大,會記錄行資料變化,但不會出現記錄錯誤
生產環境中主要使用rbr模式,因為對資料要求準確率高,也是預設模式。
sbr模式說明
因為sbr模式記錄的是sql語句到日誌中,所以對於範圍更新操作,例如如下述操作,只會記錄一條sql語句,但rbr模式下記錄的是id>5所有資料行變化的內容,所以日誌量會很大。
mysql> update test set name='zs' where id>5;
sbr模式記錄不準確的情況如下
#now()函式記錄的是執行sql語句時的當前時間,如果記錄到日誌中再通過日誌恢復就是日誌恢復的時間
insert into test values(1,'zs',now());
學習來自:老男孩深標dba課程 第六章 日誌管理
每日程式設計(二十二) 二叉樹
題目描述 給定乙個二叉搜尋樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉搜尋樹 root 6,2,8,0,4,7,9,null,null,3,5 示例 1 輸入 root 6,2,8,0,4,7,9,null,null,3,5 p 2,q 8 輸出 6 解釋 節點 2 和節點 8 的最...
十二進位制轉二進位制 2018
1 逐個輸出對應的十進位制,用空格隔開 高位到地位 10 2 輸出對應的十進位制數 10 3 轉為二進位制,用4個位元組表示 10 例如 輸入a2 輸出 10 2 12200000000 00000000 00000000 01111010 思路 1 利用transfer char ch 將單個字元...
mysql 二進位制日誌
如果mysql 伺服器啟用了二進位制日誌,你可以使用mysqlbinlog工具來恢復從指定的時間點開始 例如,從你最後一次備份 直到現在或另乙個指定的時間點的資料。mysqlbinlog 用於處理二進位制日誌檔案的實用工具 要想從二進位制日誌恢復資料,你需要知道當前二進位制日誌檔案的路徑和檔名。一般...