最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Mysql磁盤(pán)IO占用過(guò)高的問(wèn)題

 更新時(shí)間:2024年04月11日 14:35:43   作者:時(shí)棧  
這篇文章主要介紹了解決Mysql磁盤(pán)IO占用過(guò)高的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

背景

在之前的主從同步過(guò)程中(Mysql的多級(jí)復(fù)制),從數(shù)據(jù)庫(kù)Z存在磁盤(pán)IO占用過(guò)高的問(wèn)題。

磁盤(pán)IO在同步期間占用率達(dá)到100%,且數(shù)據(jù)存在滯后,不能實(shí)現(xiàn)實(shí)時(shí)更新。

從數(shù)據(jù)庫(kù)的磁盤(pán)為機(jī)械硬盤(pán),讀寫(xiě)性能相對(duì)于固態(tài)硬盤(pán)要差一點(diǎn)。

一、原因

可能是因?yàn)镸ySQL在日志在每次事務(wù)提交時(shí),都會(huì)將其寫(xiě)入并刷新到磁盤(pán),造成磁盤(pán)IO的高占用。

二、查看配置

通過(guò)在MySQL命令行運(yùn)行以下命令:

show variables like 'sync_binlog';

可以看到:sync_binlog 的值為1。

該值意味著:?jiǎn)⒂迷谔峤皇聞?wù)之前將二進(jìn)制日志同步到磁盤(pán)。這是最安全的設(shè)置,但是會(huì)造成磁盤(pán)的較高占用。

show variables like 'innodb_flush_log_at_trx_commit';

可以看到:innodb_flush_log_at_trx_commit 的值為1。

該值意味著:日志會(huì)在每次事務(wù)提交時(shí)寫(xiě)入并刷新到磁盤(pán)。

三、配置參數(shù)含義

sync_binlog:控制MySQL服務(wù)器將二進(jìn)制日志同步到磁盤(pán)的頻率

  • 默認(rèn)值:1
  • 最小值:0
  • 最大值:4294967295

sync_binlog=0:禁用 MySQL 服務(wù)器將二進(jìn)制日志同步到磁盤(pán)。相反,MySQL服務(wù)器依賴(lài)于操作系統(tǒng)不時(shí)將二進(jìn)制日志刷新到磁盤(pán),就像它對(duì)任何其他文件所做的那樣。此設(shè)置提供最佳性能,但在發(fā)生電源故障或操作系統(tǒng)崩潰時(shí),服務(wù)器可能已提交尚未同步到二進(jìn)制日志的事務(wù)。

sync_binlog=1:啟用在提交事務(wù)之前將二進(jìn)制日志同步到磁盤(pán)。這是最安全的設(shè)置,但由于磁盤(pán)寫(xiě)入次數(shù)增加,可能會(huì)對(duì)性能產(chǎn)生負(fù)面影響。如果發(fā)生電源故障或操作系統(tǒng)崩潰,二進(jìn)制日志中缺少的事務(wù)僅處于就緒狀態(tài)。這允許自動(dòng)恢復(fù)例程回滾事務(wù),從而保證二進(jìn)制日志中不會(huì)丟失任何事務(wù)。

sync_binlog=N,其中 N 是 0 或 1 以外的值:收集二進(jìn)制日志提交組后,二進(jìn)制日志將同步到磁盤(pán)。如果發(fā)生電源故障或操作系統(tǒng)崩潰,服務(wù)器可能已提交尚未刷新到二進(jìn)制日志的事務(wù)。由于磁盤(pán)寫(xiě)入次數(shù)增加,此設(shè)置可能會(huì)對(duì)性能產(chǎn)生負(fù)面影響。值越高,性能越高,但數(shù)據(jù)丟失的風(fēng)險(xiǎn)也會(huì)增加。

  • innodb_flush_log_at_trx_commit:控制提交操作的嚴(yán)格 ACID 合規(guī)性與重新排列并批量完成與提交相關(guān)的 I/O 操作時(shí)可能實(shí)現(xiàn)的更高性能之間的平衡。
  • 默認(rèn)值為1
  • 有效值為:0、1、2

可以通過(guò)更改默認(rèn)值來(lái)獲得更好的性能,但隨后可能會(huì)在崩潰中丟失事務(wù)。

  • innodb_flush_log_at_trx_commit=1 :完全符合 ACID 所必需的。日志在每次事務(wù)提交時(shí)寫(xiě)入并刷新到磁盤(pán)。
  • innodb_flush_log_at_trx_commit=0:每秒將日志寫(xiě)入磁盤(pán)并刷新一次。尚未刷新其日志的事務(wù)可能會(huì)在崩潰中丟失。
  • innodb_flush_log_at_trx_commit=2:在每次事務(wù)提交后寫(xiě)入日志,并每秒刷新一次到磁盤(pán)。尚未刷新其日志的事務(wù)可能會(huì)在崩潰中丟失。

對(duì)于設(shè)置 0 和 2,不能 100% 保證每秒一次刷新。

由于 DDL 更改和其他內(nèi)部活動(dòng)導(dǎo)致獨(dú)立于innodb_flush_log_at_trx_commit設(shè)置刷新日志,刷新可能會(huì)更頻繁地發(fā)生,有時(shí)由于計(jì)劃問(wèn)題而降低刷新頻率。

如果每秒刷新一次日志,則崩潰時(shí)最多可能會(huì)丟失一秒鐘的事務(wù)。

如果刷新日志的頻率高于或低于每秒一次的頻率,則可能丟失的事務(wù)量會(huì)相應(yīng)地變化。

四、通過(guò)修改配置解決問(wèn)題

注意:

這種解決辦法是在犧牲數(shù)據(jù)庫(kù)安全的前提下,提高磁盤(pán)的性能!??!

更改配置可能會(huì)帶來(lái)更高的數(shù)據(jù)丟失風(fēng)險(xiǎn)?。。?/strong>

可以通過(guò)以下兩條命令修改配置。 

set global sync_binlog=你希望的值;
set global innodb_flush_log_at_trx_commit=你希望的值;

更多設(shè)置請(qǐng)參考:

MySQL的二進(jìn)制日志記錄選項(xiàng)和變量

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL 5.6.36 Windows x64位版本的安裝教程詳解

    MySQL 5.6.36 Windows x64位版本的安裝教程詳解

    這篇文章主要介紹了MySQL 5.6.36 Windows x64位版本的安裝教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-05-05
  • mysql登錄警告問(wèn)題的解決方法

    mysql登錄警告問(wèn)題的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql登錄警告問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 詳解MySQL如何有效的存儲(chǔ)IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換

    詳解MySQL如何有效的存儲(chǔ)IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換

    本文主要介紹了MySQL如何有效的存儲(chǔ)IP地址及字符串IP和數(shù)值之間如何轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • MySQL系列之八 MySQL服務(wù)器變量

    MySQL系列之八 MySQL服務(wù)器變量

    其中有些參數(shù)支持運(yùn)行時(shí)修改,會(huì)立即生效;有些參數(shù)不支持,且只能通過(guò)修改配置文件,并重啟服務(wù)器程序生效;有些參數(shù)作用域是全局的,且不可改變;有些可以為每個(gè)用戶(hù)提供單獨(dú)(會(huì)話(huà))的設(shè)置
    2021-07-07
  • MySQL配置文件my.cnf與my.ini的區(qū)別

    MySQL配置文件my.cnf與my.ini的區(qū)別

    在使用MySQL時(shí),我們需要對(duì)其進(jìn)行配置,以滿(mǎn)足我們的需求,本文主要介紹了MySQL配置文件my.cnf與my.ini的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 數(shù)據(jù)從MySQL遷移到Oracle 需要注意什么

    數(shù)據(jù)從MySQL遷移到Oracle 需要注意什么

    將數(shù)據(jù)從MySQL遷移到Oracle,大家需要注意什么?Oracle移植到mysql,又需要注意什么?如何有效解決移植過(guò)程的問(wèn)題,為了數(shù)據(jù)庫(kù)的兼容性我們又該注意些什么?感興趣的小伙伴們可以參考一下
    2016-11-11
  • SSM實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)賬號(hào)密碼密文登錄功能

    SSM實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)賬號(hào)密碼密文登錄功能

    這篇文章主要介紹了SSM實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)賬號(hào)密碼密文登錄功能,本文分為三步給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-08-08
  • 詳解隱秘的?MySQL?類(lèi)型轉(zhuǎn)換問(wèn)題詳解

    詳解隱秘的?MySQL?類(lèi)型轉(zhuǎn)換問(wèn)題詳解

    這篇文章主要為大家介紹了詳解隱秘的?MySQL?類(lèi)型轉(zhuǎn)換問(wèn)題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Mysql實(shí)現(xiàn)將表里的兩列值數(shù)據(jù)互換

    Mysql實(shí)現(xiàn)將表里的兩列值數(shù)據(jù)互換

    文章內(nèi)容為通過(guò)將表中數(shù)據(jù)做臨時(shí)處理,實(shí)現(xiàn)兩個(gè)訂單號(hào)互換的方法分享,此方案適用于特定場(chǎng)景下的數(shù)據(jù)調(diào)整需求,旨在提供一種實(shí)用的解決思路,供讀者參考
    2026-05-05
  • MySQL插入、更新與刪除表中數(shù)據(jù)實(shí)現(xiàn)方式

    MySQL插入、更新與刪除表中數(shù)據(jù)實(shí)現(xiàn)方式

    本文介紹了MySQL數(shù)據(jù)插入、更新和刪除的操作方法,包括直接添加、沒(méi)有字段名添加、部分字段添加、多行添加等插入方法,UPDATE語(yǔ)句更新記錄,DELETE語(yǔ)句刪除記錄,以及TRUNCATE語(yǔ)句刪除表中所有記錄,最后總結(jié)了TRUNCATE與DELETE的區(qū)別
    2026-04-04

最新評(píng)論

通州市| 申扎县| 清水河县| 遵化市| 罗山县| 霍州市| 安龙县| 射阳县| 龙口市| 溆浦县| 遵化市| 启东市| 青冈县| 黔江区| 永宁县| 牙克石市| 常宁市| 绥江县| 娄烦县| 若羌县| 铁岭县| 江西省| 资兴市| 那坡县| 宜良县| 盐池县| 井研县| 望江县| 广丰县| 清流县| 连南| 孟村| 西畴县| 简阳市| 四会市| 佛冈县| 榆树市| 清远市| 北票市| 确山县| 六安市|