当前位置: 首页 > news >正文

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.lryc.cn/news/626469.html

相关文章:

  • RK3576赋能无人机巡检:多路视频+AI识别引领智能化变革
  • 【38页PPT】关于5G智慧园区整体解决方案(附下载方式)
  • 无人机图传 便携式5G单兵图传 HDMI图传设备 多卡5G单兵图传设备详解
  • 元宇宙的网络基础设施:5G 与 6G 的关键作用
  • 计算机视觉(二)------OpenCV图像视频操作进阶:从原理到实战
  • WIFI国家码修改信道方法_高通平台
  • 开发避坑指南(29):微信昵称特殊字符存储异常修复方案
  • 多模型创意视频生成平台
  • 微美全息(NASDAQ:WIMI):以区块链+云计算混合架构,引领数据交易营销科技新潮流
  • Linux: network: arp: arp_accept
  • imx6ull-驱动开发篇29——Linux阻塞IO 实验
  • Java并发容器详解
  • ubuntu go 环境变量配置
  • uv,下一代Python包管理工具
  • ⭐CVPR2025 给3D高斯穿 “UV 衣” 框架[特殊字符]
  • grpc 1.45.2 在ubuntu中的编译
  • 【软考架构】软件工程:软件项目管理
  • 氢元素:宇宙基石与未来能源之钥的多维探索
  • HTML <meta name=“color-scheme“>:自动适配系统深色 / 浅色模式
  • 简笔成画:让AI绘画变得简单而有趣
  • 基于隐函数定理的偏导数计算及其C++实现
  • Vue3 学习教程,从入门到精通,基于 Vue 3 + Element Plus + ECharts + JavaScript 开发图书销售网站(42)
  • K8S-Ingress资源对象
  • Linux-文本搜索工具grep
  • Nginx 负载均衡和缓存配置
  • 栈的概念(韦东山学习笔记)
  • java17学习笔记-switch总结
  • 服务器硬盘进行分区和挂载
  • 《CDN加速的安全隐患与解决办法:如何构建更安全的网络加速体系》
  • CSDN技术探讨:GEO(生成式引擎优化)如何助力品牌在AI搜索中脱颖而出