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

MYSQL 配置优化

  • max_connections

允许客户端并发连接的最大数量,默认值是151。

show status like '%connections%';

设置参数值应大于Max_used_connections。如果使用连接池,可参考连接池的最大连接数和每个连接池的数量作为参考设置

  • innodb_buffe_pool_instances

InnoDB缓存池被分成的区域数。对于1GB以上大的InnoDB缓存,将缓存分成多个部分可以提高MySQL服务的并发性,减少不同线程读缓存页的读写竞争。每个缓存池有它单独的空闲列表、刷新列表、LRU列表和其他连接到内存池的数据结构,它们被mutex锁保护。这个参数只有将innodb_buffer_pool_size参数设为1GB或以上时才生效。建议将每个分成的内存区域设为1GB大小。

在一些内存以及 CPU 内核超大型的数据库服务器上,可以在保证足够大的 IBP 内存的前提下,通过以下公式,协同增加缓存实例数量以及读写线程。

( innodb_read_io_threads + innodb_write_io_threads ) = innodb_buffe_pool_instances

如果仅仅是将读写线程根据缓存实例数量对半来分,即读线程和写线程各为实例大小的一半,肯定是不合理的。

例如应用服务读取数据库的数据多于写入数据库的数据,那么增加写入线程反而没有优化效果。

一般可以通过 MySQL 服务器保存的全局统计信息,来确定系统的读取和写入比率。

可以通过以下查询来确定读写比率:

SHOW GLOBAL STATUS LIKE 'Com_select';//读取数量
SHOW GLOBAL STATUS WHERE Variable_name IN ('Com_insert', 'Com_update', 'Com_replace', 'Com_delete');//写入数量

如果读大于写,应该考虑将读线程的数量设置得大一些,写线程数量小一些;否则,反之。

  • Innodb_buffer_pool_size

用于缓存InnoDB表数据、索引、插入缓冲、数据字典等信息。常用数据可以缓存在内存处理,提高很大效率。

官方建议:该参数设置为物理内存的50%-80%,

生产建议修改参数:(目前生产数据库内存64G)

innodb_buffer_pool_size = 32G

http://www.lryc.cn/news/15231.html

相关文章:

  • 多 态
  • Java集合
  • 高校借力泛微,搭建一体化、流程化的​内控管理平台
  • 使用人工智能赚钱的方式,行业领域有哪些?
  • 【数组中重复的数字】-C语言-题解
  • C++调用Python脚本进行18次循环操作后,脚本不执行
  • 字节10年架构师职业发展经历,助你做好职业规划
  • ArrayList真的是因为实现了RandomAccess接口才能做到快速随机访问的吗
  • OSI七层模型与物理层与设备链路层
  • Java8的Optional类的使用 和 Stream流式操作
  • Authorization Server 认证服务
  • 研制过程评审活动(五)生产定型阶段
  • NCUT加权的NMF
  • 从0开始的ios自动化测试
  • vue3中使用jszip压缩文件
  • React 虚拟DOM的前世今生
  • Java环境变量配置
  • 超详细解读!数据库表分区技术全攻略
  • Redis高可用集群方案
  • 企业微信机器人发送消息
  • 使用PHP+yii2调用asmx服务接口
  • 【042】904. 水果成篮[滑动窗口]
  • Linux基础知识(一)
  • Redis面试题
  • 微服务之Eureka
  • 日日顺于贞超:供应链数字化要做到有数、有路、有人
  • Js中blob、file、FormData、DataView、TypedArray
  • CTFer成长之路之任意文件读取漏洞
  • 制造企业为何要上数字化工厂系统?
  • Facebook广告投放的正确姿势:玩转目标定位