【MySQL参数优化】根据架构优化

根据MySQL的架构优化

参数调整的最终效果:

1)SQL执行速度足够快

2)业务吞吐量足够高:TPS,QPS

3)系统负载可控,合理:cpu,io负载

在调整参数的时候,应该熟悉mysql的体系架构,可以根据体系架构分快进行参数调整。

主要方面:内存,线程,磁盘文件,各级缓存

内存

一.通过配置缓冲池的各个方面来提高性能

buffer_pool配置

innodb_buffer_pool_size

  • 默认值:128M  ,一般调整为物理内存的50%-80%
  • 含义:innodb缓存池大小

缓冲池调整进度监控

SHOW STATUS WHERE Variable_name='InnoDB_buffer_pool_resize_status';

或者通过错误日志中也可以看到

innodb_buffer_pool_instances

划分多个instance可以减少lru list,free list 和flush list 等的长度,减少缓存的争用,当较多数据加载到内存时, 使用多缓存实例能减少缓存争用情况,innodb_buffer_pool_size 大于 1GB 时, innodb_buffer_pool_instances 默认为 8。如有更多buffer pool, 平均每个instances 至少1GB。

innodb_buffer_pool_chunk_size

  • 默认值为 128M
  • 含义:https://www.cnblogs.com/asea123/p/10089910.html
  • 动态调整buffer_pool时的块的大小。避免在调整大小操作期间复制所有缓冲池页面,操作以“ 块 ”执行 。默认情况下, innodb_buffer_pool_chunk_size为128MB(134217728字节)。块中包含的页数取决于的值 innodb_page_size。 innodb_buffer_pool_chunk_size可以以1MB(1048576字节)为单位增加或减少。

注意:块数(innodb_buffer_pool_sizeinnodb_buffer_pool_chunk_size)不应超过1000。更改时应小心 innodb_buffer_pool_chunk_size,因为更改此值可以自动增加缓冲池的大小。在更改之前 innodb_buffer_pool_chunk_size,请计算它将产生的影响, innodb_buffer_pool_size以确保生成的缓冲池大小可以接受

 innodb_flush_method

参考值:O_DIRECT

写数据的时候绕过文件系统缓存,直接写入数据文件中

参数含义:https://www.cnblogs.com/asea123/p/10089763.html

innodb_read_ahead_threshold

猜你喜欢

转载自www.cnblogs.com/asea123/p/10088452.html