mysql binlog日志三種格式_MySQL binlog三種格式詳細介紹

查看當前數據庫binlog日志格式:

show global variables like '%binlog_format%';

一、三種格式介紹

1.1 STATEMENT

該格式下每一條會修改數據的sql都會記錄在binlog中;

優點:

不需要記錄每一行的變化,減少了binlog日志量,節約了IO,提高性能。它相比row模式能節約很多性能與日志量,具體節約的多少取決于應用的SQL情況。正常同一條記錄修改或者插入row格式所產生的日志量還小于Statement產生的日志量,考慮到整表刪除等一些大量數據操作,ROW格式會產生大量日志,所以總體來講statement模式會稍微好一些。

缺點:

由于記錄的只是執行語句,為了這些語句能在slave上正確運行,因此還必須記錄每條語句在執行的時候的一些相關信息,以保證所有語句能在slave得到和在master端執行時候相同的結果。

1.2 ROW

此格式不記錄sql語句上下文相關信息,僅保存哪條記錄被修改;

優點:

binlog中可以不記錄執行的sql語句的上下文相關的信息,僅需要記錄那一條記錄被修改成什么了。所以Row格式的日志內容會非常清楚的記錄下每一行數據修改的細節。

缺點:

所有的執行的語句當記錄到日志中的時候,都將以每行記錄的修改來記錄,這樣可能會產生大量的日志內容,比如一條update語句或者一條alter語句,修改多條記錄,則binlog中每一條修改都會有記錄,每條記錄都發生改變,那么該表每一條記錄都會記錄到日志中,這樣造成binlog日志量會很大。

1.3 MIXED

該格式是以上兩種level的混合使用,一般的語句修改使用statment格式保存binlog,當statement無法完成主從復制的操作時(設計一些函數時),則采用Row格式保存binlog,MySQL會根據執行的每一條具體的sql語句來區分對待記錄的日志形式,也就是在Statement和Row之間選擇一種。

新版本的MySQL中隊Row模式也被做了優化,并不是所有的修改都會以Row模式來記錄,像遇到 表結構變更? 的時候就會以statement模式來記錄。至于update或者delete等修改數據的語句,還是會記錄所有行的變更。

二、實踐驗證

三、到底應該選用哪一種模式?

關于這三中格式的binlog,我們在使用的時候到底應該使用哪一種?我的觀點如下:

如果我們的磁盤空間和服務器性能比較OK的情況下,盡量使用Row模式,因為這種模式能夠最大程度的保證安全性,雖然產生的日志量很多,但是當你誤刪數據的時候,你就會感受到binlog給你帶來的溫暖;

當我們對一些不太重要的業務庫(例如一些log庫)進行數據主從復制的時候,盡量使用statement來執行,因為它的速度快,日志量小,而且不牽扯使用函數,是簡單的數據同步;

如果有一些場景需要盡量保證性能,但是又沒有十分嚴格的要求時,我們可以設置為Mixed格式,它可以在statement和Row之間進行切換,保證了業務的寫入性能;

最后一點,在RC和RU隔離界別下,不能使用statement格式的binlog日志;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539710.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539710.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539710.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2017阿里技術年度精選(全)

2019獨角獸企業重金招聘Python工程師標準>>> 2017年,在技術發展的歷史上,一定是個特別的一年:柯潔與AlphaGo的驚世大戰,無人咖啡店開放體驗,AI設計師“魯班”橫空出世、三年投入千億的達摩院正式成立…… 這…

查詢Oracle正在執行的sql語句,鎖表,解鎖

原文出處:http://blog.csdn.net/jlds123/article/details/6572559 ----------------------- --查詢Oracle正在執行的sql語句及執行該語句的用戶 [sql] view plaincopy SELECT b.sid oracleID, b.username 登錄Oracle用戶名, b.serial#, …

xampp for mac mysql_xampp for mac下載-Xampp Mac版下載 V7.3.2-PC6蘋果網

Xampp for mac是目前時下最流行的PHP開發環境,XAMPP是完全免費且易于安裝的Apache發行版,其中包含MySQL、PHP和Perl。XAMPP開放源碼包的設置讓安裝和使用出奇容易。整合型的Apache套件。XAMPP包括Apache、MySQL、PHP、PERL,直接解壓縮&#x…

15.2. important

<para><important>Text goes here.</important></para>重要Text goes here.原文出處&#xff1a;Netkiller 系列 手札 本文作者&#xff1a;陳景峯 轉載請與作者聯系&#xff0c;同時請務必標明文章原始出處和作者信息及本聲明。

查看表的創建時間

select OWNER,OBJECT_NAME,CREATED from dba_objects where OBJECT_NAME表名 CREATED 是表的創建時間 查詢 dba_objects 表需要dba權限

linux python2.7 scipy_scipy.sparse.linalg.sp為Linux系統上的大型稀疏矩陣解決了令人驚訝的行為...

我正在計算一個線性系統Ax b的解決方案&#xff0c;其中A具有一個大的(通常200,000行和相關的密集矩陣的列)稀疏矩陣和ba稀疏矩陣&#xff0c;大約100列。當我在Windows系統上運行代碼(Python2.7&#xff0c;scipy0.14.0)時&#xff0c;以下命令fromscipy.sparse.linalgimport…

簡簡單單的代碼讓你輕松學會 動態代理

原文出處&#xff1a;http://weixiaolu.iteye.com/blog/1477774 -------------------------------------------------------------------------- 簡簡單單的代碼讓你輕松學會動態代理 前言&#xff1a; 最近一直在分析hadoop的RPC機制。在hadoop中&#xff0c;DataNode和Na…

python變量和字符_Python變量和字符串

我需要知道Python中的變量是字符串(名稱)還是數字。我想檢查圖的度數&#xff0c;但是我需要知道“I”迭代器是字符串內部的一個數字還是字符串內的一個名稱&#xff0c;在末尾顯示了圖的度數。在這個代碼有什么問題嗎&#xff1f;在import csv, sysimport networkx as nxdef m…

Adobe軟件打開后設置默認頁面方式和默認鼠標方式

PDF文件打開后是默認顯示&#xff0c;與顯示器比例不協調&#xff0c;或大或小&#xff0c;總是需要手動調節閱讀方式&#xff0c;解決方法如下&#xff1a; Adobe軟件中可以設置默認頁面方式&#xff0c;具體步驟如下&#xff1a; 編輯 (Edit)-首選項(Preferences)-輔助工具…

CSS深入理解學習筆記之vertical-align

1、vertical-align基本認識 支持的屬性值&#xff1a; ①線類&#xff1a;baseline&#xff08;默認&#xff09;&#xff0c;top&#xff0c;middle&#xff0c;bottom ②文本類&#xff1a;text-top&#xff0c;text-bottom ③上標下標類&#xff1a;sub&#xff0c;super ④…

Java NIO原理 圖文分析及代碼實現

原文出處&#xff1a;http://weixiaolu.iteye.com/blog/1479656 ---------------------------------------------------------------------- Java NIO原理圖文分析及代碼實現 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol &#xff0c;遠程過程調用協議&am…

威綸通觸摸屏與mysql_威綸觸摸屏應用實例 以及威綸通觸摸屏配方組合

在生產車間&#xff0c;每臺設備運作起來都會有各自的組合參數&#xff0c;每臺設備運作的時候產生的數據即構成配方表&#xff0c;每張配方表內可建立多組配方數據&#xff0c;這些多臺機器的配方數據都可儲存在人機里&#xff0c;以供控制器(PLC)執行相對應的任務。從“包裝機…

分析師視角:2018年的數據中心3大預測

向數字業務平臺的遷移促使基礎設施和運營(I&O)領導者必須重新去思考他們的數據中心策略。像人工智能這樣的數字業務平臺&#xff0c;包括機器學習(ML)、深度神經網絡(DNN)和物聯網&#xff0c;對IT基礎設施有敏捷和可伸縮性等方面的計算需求。在2018年&#xff0c;I&O領…

大數據實時處理:百分點實時計算架構和算法

原文&#xff1a;http://www.oschina.net/question/1459174_145255 百分點官網&#xff1a;http://www.baifendian.com/ ------------------以下正文---------------------- 當今時代&#xff0c;數據不再昂貴&#xff0c;但從海量數據中獲取價值變得昂貴&#xff0c;而要及時…

ELK 日志處理開發指南

ELK 是 Elastic 公司出品的開源實時日志處理與分析解決方案&#xff0c;ELK 分別代表分布式搜索引擎 Elasticsearch、日志采集與解析工具 Logstash、日志可視化分析工具Kibana&#xff0c;具有配置方式靈活、集群可線性擴展、日志實時導入、檢索性能高效、可視化分析方便等優點…

UNION 和UNION ALL 的區別

UNION&#xff1a;的結果集沒有重復行&#xff0c;且安union默認的排序規則進行排序了。 UNION ALL&#xff1a;的結果集&#xff0c;如果各表有重復行就有重復行&#xff0c;不刪重復行&#xff0c;不排序。 ------------------------- 在數據庫中&#xff0c;UNION和UNION…

mysql connector 教程_MySQL Connector/C++入門教程(上)

目錄MySQL C Driver的實現基于JDBC4.0規范安裝MySQL Connector/C運行時依賴C IDE為示例程序創建數據庫與數據表使用Connector/C測試數據庫連接使用prepared Statements使用事務訪問Result Set Metadata訪問Database Metadata通過PreparedStatment對象訪問參數元數據捕獲異常調試…

14-項目開發總結報告(GB8567——88)

項目開發總結報告&#xff08;GB8567——88&#xff09;1引言1.1編寫目的說明編寫這份項目開發總結報告的目的&#xff0c;指出預期的閱讀范圍。1.2背景說明&#xff1a;a&#xff0e; 本項目的名稱和所開發出來的軟件系統的名稱&#xff1b;b&#xff0e; 此軟件的任務提出者、…

Oracle 并行查詢

所謂并行執行&#xff0c;是指能夠將一個大型串行任務&#xff08;任何DML&#xff0c;一般的DDL&#xff09;物理的劃分為叫多個小的部分&#xff0c;這些較小的部分可以同時得到處理。 何時使用并行執行: 1、必須有一個非常大的任務 2、必須有充足的資源&#xff08;CPU,I…

python中求二維數組元素之和_python二維列表求解所有元素之和

相信很多初學小伙伴都會遇到二維列表求解所有元素之和問題,下面給出兩種兩種常見的求和方法。 方法1: 思想:遍歷整個二維列表元素,然后將所有元素加起來 1 def Sum_matrix(matrix): 2 sum=0 3 for i in range(len(matrix)): 4 for j in range(len(matrix[i])): 5 sum+=matr…