MySQL-配置优化

mysql服务器参数类型

基于参数的作用域:

全局参数

set global autocommit = ON/OFF;

会话参数

set session autocommit = ON/OFF;

注意:

  • 全局参数的设定对于已经存在的会话无法生效
  • 会话参数的设定随着会话的销毁而失效
  • 全局类的统一配置建议配置在默认配置文件中,否则重启服务会导致配置失效

寻找配置文件

mysql --help 寻找配置文件的位置和加载顺序

Default options are read from the following files in the given order:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

mysql --help | grep -A 1 'Default options are read from the following files in the given order'

全局配置文件配置

最大连接数配置

max_connections

系统句柄数配置

/etc/security/limits.conf
ulimit -a

mysql 句柄数配置

/usr/lib/systemd/system/mysqld.service

常见全局配置文件配置

port = 3306

socket = /tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /data/mysql

pid-file = /data/mysql/mysql.pid

user = mysql

bind-address = 0.0.0.0

max_connections=2000

lower_case_table_names = 0 # 表名区分大小写

server-id = 1

tmp_table_size=16M

transaction_isolation = REPEATABLE-READ

ready_only=1

mysql内存参数配置

每一个connection内存参数配置:

sort_buffer_size connection 排序缓冲区大小

建议256K( 默认值)-> 2M 之内

当查询语句中有需要文件排序功能时,马上为connection 分配配置的内存大小

join_buffer_size connection 关联查询缓冲区大小

建议256K( 默认值)-> 1M 之内

当查询语句中有关联查询时,马上分配配置大小的内存用这个关联查询,所以有可能在一个查询语句中会分配很多个关联查询缓冲区

上述配置4000 连接占用内存:

4000*(0.256M+0.256M) = 2G

Innodb_buffer_pool_size

innodb buffer/cache 的大小(默认128M) )

Innodb_buffer_pool

数据缓存

索引缓存

缓冲数据

内部结构

大的缓冲池可以减小多次磁盘I/O 访问相同的表数据以提高性能

参考计算公式:

Innodb_buffer_pool_size =  (总物理内存 -  系统运行所用 - connection  所用)* 90%

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值