mysql 開發進階篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)

来源:https://www.cnblogs.com/MrHSR/archive/2018/08/13/9470065.html
-Advertisement-
Play Games

1. innodb_lock_wait_timeout mysql 可以自動監測行鎖導致的死鎖併進行相應的處理,但是對於表鎖導致的死鎖不能自動監測,所以該參數主要用於,出現類似情況的時候等待指定的時間後回滾。系統預設值是50秒。用戶可以根據業務自行設置。生產環境不推薦使用過大的 innodb_loc ...


1. innodb_lock_wait_timeout

  mysql 可以自動監測行鎖導致的死鎖併進行相應的處理,但是對於表鎖導致的死鎖不能自動監測,所以該參數主要用於,出現類似情況的時候等待指定的時間後回滾。系統預設值是50秒。用戶可以根據業務自行設置。生產環境不推薦使用過大的 innodb_lock_wait_timeout 參數值。

-- 查看事務超時時間
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';

  
  也可以對當前會話進行超時設置如: set innodb_lock_wait_timeout=1000。關於產生死鎖的原因,如何查看分析死鎖問題, 如何優化儘量避免死鎖,請查看"mysql 開發進階篇 鎖問題系列"。

2. innodb_support_xa

         通過該參數設置,是否支持分散式事務。預設值是ON或者1,表示支持分散式事務。
   分佈事事務分兩類:

  (1)是外部xa事務(支持多實例分散式事務)。

  (2)是支持內部xa事務(支持binlog和redo_log之間數據一致性)。

如果關閉這個參數,據前輩們說可能會影響到:1是主從複製binlog與redo_log不一致,2是binlog與redo_log事務順序不一致性。

--  查看是否支持分散式事務
SHOW VARIABLES LIKE 'innodb_support_xa';

  

3. innodb _log_buffer_size

       這個參數是指日誌緩存的大小。預設的設置在中等強度寫入負載以及較短事務的情況下,一般都可以滿足伺服器的性能要求。如果存在更新操作峰值或者負載較大,就應該考慮加大它的值。 如果值設置太高,可能會浪費記憶體,因為它每秒都會刷新一次,因此無需設置超過1秒所需的記憶體空間(理解是每1秒刷新後,日誌緩存會清空)。通常設置為8~16MB就足夠了。系統預設是16M。

--  查看日誌緩存空間大小
 SHOW VARIABLES LIKE 'innodb_log_buffer_size';

  

    16777216.0/1024.0/1024.0=16M

4. innodb_log_file_size
  這個參數是一個日誌組(log group)中每個日誌文件的大小,也叫事務日誌文件大小。此參數在高寫入負載尤其是大數據集的情況下很重要.這個值越大則性能相對越高,但副作用是當系統發生災難時恢復時間會加大。系統預設是48M。
  (1) 小日誌文件使寫入速度更慢,崩潰恢復速度更快。原因是由於事務日誌相當於一個寫緩衝,而小日誌文件會很快的被寫滿,這時候就需要頻繁地刷新到硬碟,速度就慢了。如果產生大量的寫操作,會增加checkpoint寫的次數,如果不能足夠快地刷新數據,那麼寫性能將會降低,。相反文件空間大,在刷新操作發生之前給你足夠的空間來使用。
  (2) 大日誌文件使寫入更快,崩潰恢復速度更慢。

--  查看每個日誌文件的大小
 SHOW VARIABLES LIKE 'innodb_log_file_size';

  
  268435456.0/1024.0/1024.0=256M

5. innodb_log_compressed_pages

         這個參數是指:日誌文件頁存儲壓縮。系統預設是ON , 將減少redo log的寫入量。

6. innodb_log_checksums

         這個參數是指:寫入redo log到文件之前,redo log的每一個block都需要加上checksum校驗位,以防止apply損壞redo log。

7.  innodb_log_write_ahead_size

         這個參數是指: redo log寫前的塊大小。系統預設是8192位元組。

8. innodb_log_files_in_group

       這個參數是指:該變數控制日誌文件數。預設值為3。日誌是以順序的方式寫入。結合innodb_buffer_pool_size設置其大小。一般不用設置。

9. innodb_log_group_home_dir

    這個參數是指:日誌組所在的路徑。

--  所有日誌參數如下
 SHOW VARIABLES LIKE 'innodb_log%';

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • linux 裝機必備工具:安裝這些基本能滿足日常需求。 GitHub 地址: https://github.com/yaowenxu/envfile/tree/master/init 有幫助的話,請點個推薦。 保持更新,轉載請註明出處。 ...
  • 一.概述 前面介紹了簡單恢復模式和大容量恢復模式,這篇繼續寫完整恢復模式下的備份與還原。在完整恢復模式里最大的優點是只要能成功備份尾日誌,就可以還原到日誌備份內包含的任何時點("時點恢復")。當然對比前二種模式它是犧牲了磁碟I/O性能。 恢復模式 備份策略 數據安全性 I/O性能 簡單恢復 完整備份 ...
  • 1、首先新建用戶,adduser命令 sudo adduser hadoop passwd hadoop 輸入密碼之後,一路 y 確定。 2、添加用戶組 在創建hadoop用戶的同時也創建了hadoop用戶組,下麵我們把hadoop用戶加入到hadoop用戶組下麵 sudo usermod -a - ...
  • 為什麼要有索引?就像為什麼書要有目錄一樣。 索引是什麼東西?和目錄一樣成為書的一部分。 索引是由什麼組成的?原文中具有代表性的一部分。 索引有三種添加方式: 1. 在創建表的時候,直接在列名後面添加 或在後面單獨定義 2. 在表外為其創建 3. 外界進行修改時添加 索引有五種分類: 普通索引, 關鍵 ...
  • 占座 ...
  • Oracle Concepts 11gr2是介紹oracle資料庫的基礎概念的入門書籍,學習這些概念方便於學習其他更深層次的知識。 ...
  • 使用SSMS資料庫管理工具修改數據 修改任意一條或者多條都可以 1:打開資料庫,選擇數據表,右鍵點擊-》編輯所有行(如未配置,點擊編輯前200行)。 2、編輯需要修改的數據-》編輯完成後,右鍵點擊空白處-》選擇執行SQL即可編輯成功。 使用T-SQL腳本修改數據 修改單表中一行單列或者多列數據 語法 ...
  • Flume – 初識flume、source和sink 目錄基本概念常用源 Source常用sink 基本概念  什麼叫flume? 分散式,可靠的大量日誌收集、聚合和移動工具。  events 事件,是一行數據的位元組數據,是flume發送文件的基本單位。  flume配置文件 重命名flum ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...