欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql數(shù)據(jù)庫中的redo?log?寫入策略和binlog?寫入策略

 更新時間:2022年04月26日 09:09:42   作者:男人要霸氣  
這篇文章主要介紹了Mysql?redo?log?寫入策略和binlog?寫入策略,通過本文學(xué)習(xí)可以了解redo?log的寫入策略是由InnoDB提供了innodb_flush_log_at_trx_commit參數(shù),binlog的寫入策略,write?和fsync的時機,是由參數(shù)sync_binlog控制的,需要的朋友可以參考下

redo log的寫入策略

InnoDB提供了innodb_flush_log_at_trx_commit參數(shù),它有三種可能取值:

  • 設(shè)置為0的時候,表示每次事務(wù)提交時都只是把redo log留在redo log buffer中;
  • 設(shè)置為1的時候,表示每次事務(wù)提交時都將redo log直接持久化到磁盤;
  • 設(shè)置為2的時候,表示每次事務(wù)提交時都只是把redo log寫到page cache。

查看mysql變量:show VARIABLES LIKE 'innodb_flush_log_at_trx_commit'

binlog的寫入策略

binlog的寫入策略,write 和fsync的時機,是由參數(shù)sync_binlog控制的:

  • sync_binlog=0的時候,表示每次提交事務(wù)都只write,不fsync;
  • sync_binlog=1的時候,表示每次提交事務(wù)都會執(zhí)行fsync;
  • sync_binlog=N(N>1)的時候,表示每次提交事務(wù)都write,但累積N個事務(wù)后才fsync

因此,在出現(xiàn)IO瓶頸的場景里,將sync_binlog設(shè)置成一個比較大的值,可以提升性能。在實際的業(yè)務(wù)場景中,考慮到丟失日志量的可控性,一般不建議將這個參數(shù)設(shè)成0,比較常見的是將其設(shè)置為100~1000中的某個數(shù)值。

但是,將sync_binlog設(shè)置為N,對應(yīng)的風險是:如果主機發(fā)生異常重啟,會丟失最近N個事務(wù)的binlog日志。

生產(chǎn)配置

通常情況下,生產(chǎn)都是" 雙1 "的配置,也就是sync_binloginnodb_flush_log_at_trx_commit 的配置都是1,也就是說,一個事務(wù)完整提交前,需要等待兩次刷盤,一次是redo log,一次是binlog。

性能瓶頸

如果你的MySQL現(xiàn)在出現(xiàn)了性能瓶頸,而且瓶頸在IO上,可以通過哪些方法來提升性能呢?

針對這個問題,可以考慮以下三種方法:

  • 設(shè)置 binlog_group_commit_sync_delaybinlog_group_commit_sync_no_delay_count參數(shù),減少binlog的寫盤次數(shù)。這個方法是基于“額外的故意等待”來實現(xiàn)的,因此可能會增加語句的響應(yīng)時間,但沒有丟失數(shù)據(jù)的風險。
  • sync_binlog 設(shè)置為大于1的值(比較常見是100~1000)。這樣做的風險是,主機掉電時會丟binlog日志。
  • innodb_flush_log_at_trx_commit設(shè)置為2。這樣做的風險是,主機掉電的時候會丟數(shù)據(jù)。

我不建議你把innodb_flush_log_at_trx_commit 設(shè)置成0。因為把這個參數(shù)設(shè)置成0,表示redo log只保存在內(nèi)存中,這樣的話MySQL本身異常重啟也會丟數(shù)據(jù),風險太大。而redo log寫到文件系統(tǒng)的page cache的速度也是很快的,所以將這個參數(shù)設(shè)置成2跟設(shè)置成0其實性能差不多,但這樣做MySQL異常重啟時就不會丟數(shù)據(jù)了,相比之下風險會更小。

到此這篇關(guān)于Mysql redo log 寫入策略和binlog 寫入策略的文章就介紹到這了,更多相關(guān)Mysq寫入策略內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql explain的用法(使用explain優(yōu)化查詢語句)

    mysql explain的用法(使用explain優(yōu)化查詢語句)

    mysql explain可以幫助你檢查索引和更好的優(yōu)化查詢語句,今天特地學(xué)習(xí)了下mysql explain的用法,需要的朋友可以參考下
    2017-01-01
  • MySql中的常用參數(shù)查詢

    MySql中的常用參數(shù)查詢

    這篇文章主要介紹了MySql中的常用參數(shù)查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 優(yōu)化mysql數(shù)據(jù)庫的經(jīng)驗總結(jié)

    優(yōu)化mysql數(shù)據(jù)庫的經(jīng)驗總結(jié)

    本篇文章是對優(yōu)化mysql數(shù)據(jù)庫的經(jīng)驗進行了詳細的總結(jié)介紹,需要的朋友參考下
    2013-06-06
  • MySQL8.0?索引優(yōu)化invisible?index詳情

    MySQL8.0?索引優(yōu)化invisible?index詳情

    這篇文章主要介紹了MySQL8.0?索引優(yōu)化invisible?index詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • CentOS7離線安裝MySQL的教程詳解

    CentOS7離線安裝MySQL的教程詳解

    這篇文章主要介紹了CentOS7離線安裝MySQL的教程,在安裝之前需要我們先刪除原有的mariadb,文中也通過命令給大家介紹了,需要的朋友跟隨小編也看看吧
    2019-07-07
  • mysql?觸發(fā)器的使用及注意點

    mysql?觸發(fā)器的使用及注意點

    本篇要介紹的是mysql的觸發(fā)器,也屬于數(shù)據(jù)庫編程的一種,相對存儲過程來說,使用起來更加簡單,在某些特定的場景下使用觸發(fā)器,同樣可以達到減少應(yīng)用程序與mysql服務(wù)器交互次數(shù)從而提升性能的目的,對mysql?觸發(fā)器使用相關(guān)知識感興趣的朋友一起看看吧
    2022-08-08
  • 通過DML更新MySQL數(shù)據(jù)庫數(shù)據(jù)的示例代碼

    通過DML更新MySQL數(shù)據(jù)庫數(shù)據(jù)的示例代碼

    這篇文章主要給大家介紹了如何通過DML更新MySQL數(shù)據(jù)庫的數(shù)據(jù),通過DML來對數(shù)據(jù)庫種地表的數(shù)據(jù)記錄進行增刪改查操作,文中給大家了詳細的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2024-01-01
  • 安裝和使用percona-toolkit來輔助操作MySQL的基本教程

    安裝和使用percona-toolkit來輔助操作MySQL的基本教程

    這篇文章主要介紹了安裝和使用percona-toolkit來輔助操作MySQL的基本教程,這里舉了五個最常見的命令用法,需要的朋友可以參考下
    2015-11-11
  • MySQL 數(shù)據(jù)類型詳情

    MySQL 數(shù)據(jù)類型詳情

    這篇文章主要介紹了MySQL 數(shù)據(jù)類型,數(shù)值類型分類又分嚴格數(shù)值類型和近似數(shù)值數(shù)據(jù)類型,下面文章圍繞MySQL 數(shù)據(jù)類型展開內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • MySQL中decimal類型用法的簡單介紹

    MySQL中decimal類型用法的簡單介紹

    今天小編就為大家分享一篇關(guān)于MySQL中decimal類型用法的簡單介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論