當前位置:
首頁 >
MySQL binlog三种模式
發布時間:2025/3/15
25
豆豆
生活随笔
收集整理的這篇文章主要介紹了
MySQL binlog三种模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文出自?http://www.abcdocker.com/abcdocker/213
MySQ binlog三種模式及設置方法
1.1 Row Level ?行模式
日志中會記錄每一行數據被修改的形式,然后在slave端再對相同的數據進行修改 優點:在row level模式下,bin-log中可以不記錄執行的sql語句的上下文相關的信息,僅僅只需要記錄那一條被修改。所以rowlevel的日志內容會非常清楚的記錄下每一行數據修改的細節。不會出現某些特定的情況下的存儲過程或function,以及trigger的調用和觸發無法被正確復制的問題 缺點:row level,所有的執行的語句當記錄到日志中的時候,都將以每行記錄的修改來記錄,會產生大量的日志內容。1.2 Statement Level(默認)
每一條會修改數據的sql都會記錄到master的bin-log中。slave在復制的時候sql進程會解析成和原來master端執行過的相同的sql來再次執行 優點:statement level下的優點首先就是解決了row level下的缺點,不需要記錄每一行數據的變化,減少bin-log日志量,節約IO,提高性能,因為它只需要在Master上鎖執行的語句的細節,以及執行語句的上下文的信息。 缺點:由于只記錄語句,所以,在statement level下 已經發現了有不少情況會造成MySQL的復制出現問題,主要是修改數據的時候使用了某些定的函數或者功能的時候會出現。1.3 Mixed 自動模式
在Mixed模式下,MySQL會根據執行的每一條具體的sql語句來區分對待記錄的日志格式,也就是在Statement和Row之間選擇一種。如果sql語句確實就是update或者delete等修改數據的語句,那么還是會記錄所有行的變更。行模式和語句模式的區別
1.語句模式: 100萬條記錄 只需1條delete * from test;就可以刪除100萬條記錄 2.row模式 100萬條記錄 記錄100萬條刪除命令1.4 企業場景如何選擇binlog模式
1、互聯網公司,使用MySQL的功能相對少(存儲過程、觸發器、函數) 選擇默認的語句模式,Statement Level(默認)2、公司如果用到使用MySQL的特殊功能(存儲過程、觸發器、函數) 則選擇Mixed模式
3、公司如果用到使用MySQL的特殊功能(存儲過程、觸發器、函數)又希望數據最大化一直,此時最好選擇Row level模式
行模式和語句模式的區別 1.語句模式: 100萬條記錄 只需1條delete * from test;就可以刪除100萬條記錄 2.row模式 100萬條記錄 記錄100萬條刪除命令
1.5 如何配置binlog
在數據庫中查看binlog模式?
總結
以上是生活随笔為你收集整理的MySQL binlog三种模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 通讯录设计(二)
- 下一篇: mysql5.6 二进制免编译安装