MySQL 8.x的性能優化文檔整理

一、內存與緩沖優化

# InnoDB緩沖池(內存的60%-80%)
innodb_buffer_pool_size = 12G      # 核心參數
innodb_buffer_pool_instances = 8   # 8核CPU建議分8個實例# 日志緩沖區與Redo日志
innodb_log_buffer_size = 256M      # 事務日志緩沖區
innodb_log_file_size = 4G          # Redo日志文件大小
innodb_log_files_in_group = 3      # Redo日志組文件數量# 內存臨時表
tmp_table_size = 512M              # 內存臨時表上限
max_heap_table_size = 512M         # 內存表最大值

二、連接與線程優化

# 連接控制
max_connections = 1000             # 最大連接數
thread_cache_size = 100            # 線程緩存數(建議max_connections的10%)
table_open_cache = 2000            # 表緩存數量# InnoDB線程優化
innodb_thread_concurrency = 16     # 并發線程數(建議CPU核心數*2)
innodb_read_io_threads = 16        # 讀線程數(8核CPU建議16)
innodb_write_io_threads = 16       # 寫線程數(8核CPU建議16)

三、事務與日志優化

# 事務持久化策略
innodb_flush_log_at_trx_commit = 1 # 生產環境建議1(安全優先)/測試環境可設2
sync_binlog = 1                    # Binlog同步策略# Binlog配置
binlog_expire_logs_seconds = 2592000  # Binlog保留30天(替代expire_logs_days)
binlog_cache_size = 8M             # 事務Binlog緩存

四、查詢與鎖優化

# 查詢緩沖區
sort_buffer_size = 8M              # 排序緩沖區(避免過大)
read_buffer_size = 8M              # 全表掃描緩沖區
join_buffer_size = 8M              # JOIN操作緩沖區# 鎖與超時
innodb_lock_wait_timeout = 50      # 行鎖等待超時(秒)
lock_wait_timeout = 120            # 元數據鎖超時

五、網絡與安全

max_allowed_packet = 64M           # 最大數據包限制
skip_name_resolve = ON             # 禁用DNS解析加速連接
lower_case_table_names = 1         # 表名不區分大小寫

六、監控與診斷

# 慢查詢日志
slow_query_log = ON                # 啟用慢查詢日志
long_query_time = 1                # 記錄超過1秒的查詢
log_queries_not_using_indexes = ON # 記錄無索引查詢# Performance Schema
performance_schema = ON            # 啟用性能監控

調優驗證步驟

  1. 壓力測試工具
    使用sysbench模擬業務負載(OLTP讀寫比例推薦8:2):

    sysbench oltp_read_write --threads=16 --time=300 --mysql-host=localhost --mysql-user=root run
    
  2. 監控指標

    • 通過SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%'檢查緩沖池命中率(目標>95%)
    • 通過SHOW STATUS LIKE 'Threads_%'監控線程狀態
    • 使用pt-query-digest分析慢查詢日志
  3. 動態調整

    SET GLOBAL innodb_flush_log_at_trx_commit=2;  -- 臨時調整事務提交策略
    SET GLOBAL tmp_table_size=1024*1024*1024;     -- 調整臨時表大小
    

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

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

相關文章

個人使用AI開發的《PlSqlRewrite4GaussDB(PLSQL自動轉換工具)1.0.1 BETA》發布

個人使用AI開發的《PlSqlRewrite4GaussDB(PLSQL自動轉換工具)1.0.1 BETA》發布 前言 基于語法樹的SQL自動改寫工具開發系列(1)-離線安裝語法樹解析工具antlr4 基于語法樹的SQL自動改寫工具開發系列(2)-使用PYTHON進行簡單SQL改寫…

python的校園研招網系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持: 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具:Navicat/SQLyog等都可以 摘要&…

如何高效撰寫AI領域學術論文——學習筆記

最開始寫的時候最好仿照著頂會來寫1. 標題(Title)?標題是論文的"門面",需要同時具備簡潔性和信息量:采用"XX方法 for XXX任務"的標準格式,包含核心創新點和應用領域,避免使用模糊詞匯,力求精準&a…

elasticsearch8.12.0安裝分詞

上篇說到,安裝了es后正常運行es分詞下載地址從 GitHub Release 下載(推薦) 👉 https://github.com/medcl/elasticsearch-analysis-ik/releases或https://release.infinilabs.com/analysis-ik/stable/安裝:選擇與你 ES …

強化學習算法分類與介紹(含權重更新公式)

強化學習算法種類豐富,可按學習目標(基于價值 / 基于策略 / 演員 - 評論家)、數據使用方式(在線 / 離線)、是否依賴環境模型(無模型 / 有模型)等維度分類。以下按核心邏輯梳理常見算法&#xff…

基于STM32F103單片機智能門禁熱釋人體感應報警設計

1 系統功能介紹 本設計基于 STM32F103C8T6 單片機,通過多種傳感器、執行器以及通信模塊實現智能門禁和安防報警功能。其主要功能是檢測門外人員情況,結合環境光照強度判斷是否需要照明,同時結合 GSM 模塊在異常情況下發送報警信息&#xff0c…

imx6ull-驅動開發篇33——platform 平臺驅動模型

目錄 Linux 驅動的分離與分層 驅動的分隔與分離 驅動的分層 platform 平臺驅動模型 platform 總線 bus_type 結構體 platform 總線 platform_match函數 platform 驅動 platform_driver 結構體 device_driver 結構體 platform_driver_register 函數 platform_drive…

Win/Linux筆記本合蓋不睡眠設置指南

在 筆記本電腦上,當你合上屏幕時,默認系統可能會進入“睡眠”或“休眠”狀態。如果你希望合上屏幕時系統繼續正常運行(例如后臺下載、運行程序、遠程訪問等),需要修改系統的電源設置。 一、以下是 Windows 10 / Windo…

(棧)Leetcode155最小棧+739每日溫度

739. 每日溫度 - 力扣(LeetCode) while要把stack的判斷放在前面,否則stack[-1]可能報錯 class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]""…

【NLP(01)】NLP(自然語言處理)基礎

目錄NLP基礎一、基本概念1. 自然語言處理的基本介紹1.1 與語言相關的概念1.2 為什么使用NLP2. NLP的應用方向2.1 **自然語言理解**2.2 自然語言轉換2.3 自然語言生成3. NLP基礎概念4. NLP的發展歷史5. NLP的基本流程二、NLP中的特征工程0. 引入1. 詞向量2. 傳統NLP中的特征工程…

Python工程師進階學習道路分析

本文將分為以下幾個核心部分: 心態與基礎重塑:從“會用”到“精通”核心語言深度:窺探Python的奧秘編程范式與設計模式:寫出優雅的代碼并發與異步編程:釋放多核時代的威力性能分析與優化:讓代碼飛起來深入…

IntelliJ IDEA中Maven的“Sync“與“Reload“詳解:小白的避坑指南

在IntelliJ IDEA中使用Maven時,Sync All Maven Projects(同步)和 Reload All Maven Projects(重新加載)是兩個最常用的操作按鈕。它們看似相似,實則承擔著完全不同的職責。本文將通過通俗易懂的對比和場景分…

網絡地址的詳細計算說明

IP地址分類與計算 IP地址分5類A類 :0開頭,適用于大型網絡 B類 :10開頭,適用于中型網絡 C類 :110開頭,適用于小型網絡 D類 :1110開頭,用于組播 E類 : 1110開頭&#xff0c…

人工智能驅動的現代電商前端開發:從基礎到智能體驗

引言:AI如何重塑電商體驗電子商務行業正在經歷一場人工智能革命。從個性化推薦到視覺搜索,從智能客服到預測分析,AI技術正在徹底改變用戶與電商平臺的交互方式。作為前端開發者,了解如何集成AI功能已成為必備技能。本文將帶您深入…

mimic數據統計

是否能聯通 psql -h 127.0.0.1 -U Shinelon-d mimic --password pgadmin建庫 psql -d mimiciv -f mimic-iv/buildmimic/postgres/create.sql 也可以pgadmin直接運行create.sql 導入csv.gz數據 psql -d mimic -v ON_ERROR_STOP1 -v mimic_data_dirH:/mimic-iv-2.2 -f C:\Users\S…

孟德爾隨機化小試 從軟件安裝數據下載到多種檢驗

孟德爾隨機化(Mendelian Randomization, MR)作為一種利用基因數據推斷因果關系的強大工具,在流行病學研究中應用廣泛。本文將詳細講解MR的核心原理、完整分析流程,并附上關鍵代碼實現,幫助你從零開始完成一次MR分析。1…

記一次:postman請求下載文件的使用方法

前言:筆者的后端接口是swagger,遇到像文件導出下載的功能就實現不了。然后使用postman工具就可以了。注:postman工具使用send下拉選項中有請求下載,如圖完美解決。后續有其它方法在補充。

快速搭建項目(若依)

RuoYi-Vue 是一個 Java EE 企業級快速開發平臺,低代碼的框架。 1.環境要求: 其中MySQL和Redis放在服務器上或者本機上。 2.代碼搭建: 代碼下載地址:https://gitee.com/y_project/RuoYi-Vue,在官方文檔里面可下載若依…

iOS開發之UICollectionView為什么需要配合UICollectionViewFlowLayout使用

1. UICollectionView 的職責分離UICollectionView 本質上只是一個容器,用來展示一系列的 cell(單元格)。 它本身 不關心 cell 的擺放方式,只負責:Cell 的復用(避免性能浪費)Cell 的增刪改查滾動…

一、部署LNMP

一、準備環境操作系統:CentOS 7.x(最少 2 核 CPU 2GB 內存 20GB 磁盤)網絡:能訪問公網(用于下載包)軟件版本:Nginx 1.20MySQL 5.7/8.0PHP 7.4WordPress 6.x(商城插件 WooCommerce&…