MySQL配置簡單優化與讀寫測試

測試方法

  1. 先使用sysbench對默認配置的MySQL單節點進行壓測,單表數據量為100萬,數據庫總數據量為2000萬,每次壓測300秒。
sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 \--mysql-host=192.168.0.10 --mysql-port=3306 --mysql-user=root --mysql-password=123456 \--mysql-db=benchtest --tables=20 \--table_size=1000000 oltp_read_write --db-ps-mode=disable run
  1. 再增加innodb緩存池大小。對于單機只跑MySQL的服務器,業界一般設置為系統內存的70%左右。比如總內存64G的服務器,innodb緩存池大小可以設置為45G。該參數可以動態設置,不需要重啟MySQL。
  2. 在修改innodb緩存池大小之后,修改讀寫IO的線程數加起來等于CPU核心數。比如CPU核心數為16,則讀IO線程數修改為8,寫IO線程數修改為8。該配置只能修改配置文件,不能動態配置。

檢查當前配置

-- innodb緩沖池大小
SHOW VARIABLES LIKE "%innodb_buffer_pool_size";
-- change_buffer在緩沖池的占用比
SHOW VARIABLES LIKE "%innodb_change_buffer_max_size";
-- innodb的讀io線程數
SHOW VARIABLES LIKE "%innodb_read_io_threads";
-- innodb的寫io線程數
SHOW VARIABLES LIKE "%innodb_write_io_threads";
-- 查看innodb臟頁刷新線程數
SHOW VARIABLES LIKE "%innodb_page_cleaners";
SHOW GLOBAL STATUS LIKE "innodb%wait_free";
-- 查詢緩存是否開啟
SHOW VARIABLES LIKE "%query_cache_type";

修改配置

-- 增大innodb緩沖池大小為5G
SET GLOBAL innodb_buffer_pool_size = 5368709120;
-- 讀寫IO線程數只能修改配置文件重啟MySQL才能生效

測試

  • 默認配置。innodb_buffer_pool默認只有128MB,讀寫線程數分別為4。
# SQL執行統計
SQL statistics:queries performed:read:                            89432 # 讀SQL數write:                           25552 # 寫SQL數other:                           12776total:                           127760 # 總SQL數transactions:                        6388   (21.23 per sec.)queries:                             127760 (424.70 per sec.) # 平均每秒執行424.70條SQLignored errors:                      0      (0.00 per sec.)reconnects:                          0      (0.00 per sec.)
General statistics:total time:                          300.8215stotal number of events:              6388
Latency (ms):min:                                   27.55avg:                                  470.25max:                                 1907.7895th percentile:                      943.16sum:                              3003956.97
Threads fairness:events (avg/stddev):           638.8000/5.72execution time (avg/stddev):   300.3957/0.14
  • 增大innodb_buffer_pool到5G。讀SQL執行數增長63.8%,寫SQL執行數增長63.8%,總執行SQL數增長63.8%,完成總事件數增長63.8%。相較于默認配置,性能提升63.8%。
SQL statistics:queries performed:read:                            146468write:                           41848other:                           20924total:                           209240transactions:                        10462  (34.79 per sec.)queries:                             209240 (695.78 per sec.)ignored errors:                      0      (0.00 per sec.)reconnects:                          0      (0.00 per sec.)
General statistics:total time:                          300.7235stotal number of events:              10462
Latency (ms):min:                                   33.13avg:                                  287.15max:                                 1199.8195th percentile:                      559.50sum:                              3004126.18
Threads fairness:events (avg/stddev):           1046.2000/6.38execution time (avg/stddev):   300.4126/0.10
  • 再將讀寫IO線程各改為12。性能提升相較于增加innodb緩存池5G,增長52.3%;相較于默認配置,增長149.4%。
SQL statistics:queries performed:read:                            223020write:                           63720other:                           31860total:                           318600transactions:                        15930  (53.08 per sec.)queries:                             318600 (1061.64 per sec.)ignored errors:                      0      (0.00 per sec.)reconnects:                          0      (0.00 per sec.)
General statistics:total time:                          300.0967stotal number of events:              15930
Latency (ms):min:                                   27.77avg:                                  188.37max:                                 1133.2495th percentile:                      467.30sum:                              3000790.02
Threads fairness:events (avg/stddev):           1593.0000/13.57execution time (avg/stddev):   300.0790/0.01

其它

還有chenge_buffer和臟頁刷新線程數可優化,但未詳細測試。

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

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

相關文章

獵板深耕透明 PCB,解鎖電子設計新邊界

在電子技術快速迭代的當下,獵板始終關注行業前沿,透明 PCB 作為極具創新性的技術,正在改變電子設備的設計與應用格局。? 從傳統的綠色、棕色 PCB 到如今的透明 PCB,其突破在于特殊基材與導電材料的運用,實現 85%-92%…

FLAML:快速輕量級自動機器學習框架

概述 FLAML(Fast and Lightweight AutoML)是微軟開發的一個高效的自動機器學習(AutoML)框架。它專注于在有限的計算資源和時間約束下,自動化機器學習管道的構建過程,包括特征工程、模型選擇、超參數調優等…

Github 以及 Docker的 wsl --list --online無法訪問問題

修改電腦DNS 騰訊 DNS IP:119.29.29.29 備用:182.254.116.116 阿里DNS IP:223.5.5.5 223.6.6.6 百度DNS IP:180.76.76.76 谷歌DNS IP:8.8.8.8

Go 語言中的變量和常量

這篇文章已經放到騰訊智能工作臺的知識庫啦,鏈接在這里:ima.copilot-Go 入門到入土。要是你有啥不懂的地方,就去知識庫找 AI 聊一聊吧。 1、變量的聲明與使用 我們來探討編程語言中最核心的概念之一:變量。 1、靜態語言中的變量…

破局傳統訂貨!云徙渠道訂貨系統賦能企業數字化渠道升級

在數字化浪潮的推動下,傳統經銷商訂貨模式面臨著諸多挑戰,如信息孤島、系統崩潰、移動化不足等問題。云徙渠道訂貨系統憑借其創新的數字化架構和強大的功能模塊,正在成為企業實現渠道數字化轉型的重要工具。 系統功能與創新 云徙渠道訂貨系統…

SQL關鍵字三分鐘入門:UNION 與 UNION ALL —— 數據合并全攻略

在處理數據時,有時我們需要將來自不同表或同一表的不同查詢結果合并在一起。例如: 合并兩個部門的員工名單;將多個地區的銷售數據匯總;顯示某段時間內所有新增和修改的記錄。 這時候,我們就需要用到 SQL 中非常強大的…

SNMPv3 的安全命名空間詳解

1. 安全命名空間的本質 安全命名空間是 SNMPv3 的核心安全機制,通過 上下文(Context) 實現: #mermaid-svg-6cV9146nTFF1zCMJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merma…

【嵌入式硬件實例】-555定時器實現煙霧和易燃氣體泄露檢測

555定時器實現煙霧和易燃氣體泄露檢測 文章目錄 555定時器實現煙霧和易燃氣體泄露檢測1、555定時器介紹2、MQ-2 氣體/煙霧傳感器模塊介紹3、硬件準備與接線在本文中,我們將使用555定時器和MQ-2氣體傳感器構建一個氣體泄漏檢測和報警系統。它在煤氣泄漏期間用作家庭安全警報器。…

【機器人】DualMap 具身導航 | 動態場景 開放詞匯語義建圖 導航系統

DualMap 是一個在線的開放詞匯語義映射系統,使得機器人能夠通過自然語言查詢在動態變化的環境中理解和導航 雙地圖導航,結合全局抽象地圖進行高層次候選選擇,以及局部具體地圖進行精確目標定位,有效管理和更新環境中的動態變化。…

【Fifty Project - D37】

fifty project算是失敗了一半了 成功的那一半在于一定程度上拯救了我的作息和健康,兩個月前入職體檢的肝有點不健康,昨天復查發現全都回到了健康范圍!尿酸也在正常范圍!就是體重還是沒減下來hhh 失敗的一半在于自己很差勁的規劃能…

解碼危險品物流背后的“隱形防線”

當急救藥品跨越千里送達醫院,當新能源電池準時抵達生產線,當化工原料安全運往工廠……這些與日常生活息息相關的場景背后,有一群人始終在和時間賽跑,與風險博弈。他們不是超級英雄,而是危險品物流從業者——一個鮮少被…

Flutter Melos在外包團隊協作中的弊端與應對策略

引言 在大型Flutter項目開發中,Melos作為一款優秀的Monorepo管理工具,能夠有效協調多包項目的開發流程。然而,當項目涉及外包團隊協作時,Melos的使用會面臨一系列獨特的挑戰。本文將深入分析Flutter Melos在外包團隊協作環境中的…

<selectKey> 中的order 屬性

在 MyBatis 中&#xff0c;<selectKey> 標簽的 order 屬性用于指定生成主鍵值的 SQL 語句執行時機。 除了 AFTER&#xff0c;MyBatis 還支持另一種模式&#xff1a;BEFORE&#xff0c; 它們有明確的使用場景和區別&#xff1a; order"AFTER" 適用數據庫&#x…

BitsAndBytes(簡稱 BnB)是一個用于“壓縮”大語言模型的工具包

BitsAndBytes&#xff08;簡稱 BnB&#xff09;是一個用于“壓縮”大語言模型的工具包&#xff0c;能把模型從原來的16位或32位&#xff0c;壓成4位或8位&#xff0c;減少顯存占用&#xff0c;同時保持盡量高的精度。 &#x1f9e9; 為什么叫 Bits and Bytes&#xff1f; 它的…

【前端】 Vue 3 中二次封裝組件

在 Vue 3 中二次封裝組件是提高代碼復用性和維護性的重要手段。以下是詳細的封裝方法和最佳實踐&#xff1a; 一、封裝原則 功能擴展&#xff1a;在原有組件基礎上添加新功能定制樣式&#xff1a;統一項目的 UI 設計規范簡化接口&#xff1a;隱藏復雜邏輯&#xff0c;提供簡潔…

分布式詞表示(Distributed Word Representation):自然語言處理的核心基石

分布式詞表示&#xff08;Distributed Word Representation&#xff09;&#xff1a;自然語言處理的核心基石 在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;如何將離散的詞匯轉化為計算機可理解的數值形式&#xff0c;一直是技術突破的關鍵。傳統的獨熱編碼&…

Windows Playwright NotImplementedError問題深究

原文鏈接&#xff1a;Windows Playwright NotImplementedError問題深究 < Ping通途說 0. 引言 今天來看一下這個困擾我很久的問題。是關于在FastAPI / NiceGUI 等基于Uvicorn環境下使用Async Playwright 提示NotImplementedError的問題。 本解決方案僅適用基于Uvicorn的異步…

QCustomPlot 數據可視化方式詳解

QCustomPlot 數據可視化方式詳解 QCustomPlot 提供了多種靈活的數據顯示方式,可以滿足從簡單靜態圖表到復雜實時數據可視化的各種需求。以下是 QCustomPlot 顯示數據的核心方式和策略: 基本數據顯示方式 1.1 完整數據設置 (setData)// 一次性設置完整數據集 QVector<doub…

家用舊電腦搭建小型服務器操作步驟教程:一步一步本地部署到公網訪問

你家是不是也有一臺吃灰的舊電腦&#xff1f;別急著扔&#xff0c;它其實還能發揮大作用&#xff01;小編最近就把家里一臺十年前的老臺式機&#xff0c;改造成了一個小型服務器&#xff0c;主要用來文件備份、當網站測試環境&#xff0c;還是比較有用的。今天就來手把手教你&a…

Python銀行賬戶系統全解析

完整代碼如下&#xff1a; class BankAccount:def __init__(self, account_holder, initial_balance0):"""初始化銀行賬戶:param account_holder: 賬戶持有人姓名:param initial_balance: 初始余額&#xff0c;默認為0"""self.account_holder …