mysql 优化my.cnf参数详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq13650793239/article/details/82705367

最近在业务中遇到mysql二进制日志相关问题,这里整理一份线上my.cnf参数配置:

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin

[mysqld1]
socket = /tmp/mysql.sock
port = 3306
pid-file = /usr/local/mysql/var1/mysqld.pid
datadir = /usr/local/mysql/var1/
explicit_defaults_for_timestamp = true

##Disable DNS lookups
skip-name-resolve   #禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。如果开启该选项,则所有远程主机连接授权都要使用IP地址方式。
skip-external-locking 
log-bin=mysql-bin   #开启二进制日志

##IO 缓存优化
#用于索引块的缓冲区大小,增加它可得到更好处理的索引(默认384M),严格说是它决定了数据库索引处理的速度,尤其是索引读的速度
key_buffer_size = 128M  

max_allowed_packet = 16M
table_open_cache = 128
#MySql执行排序使用的缓冲大小,默认4M。如果想要增加ORDERBY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。如果不能,可以尝试增加sort_buffer_size变量的大小
sort_buffer_size = 4M
#MySql读入缓冲区大小,默认2M。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能.
read_buffer_size = 4M
#MySql的随机读缓冲区大小,默认8M。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区
read_rnd_buffer_size = 8M

## 最大连接数,MySQL服务器允许的最大连接数16384,连接数越多消耗内存越多
max_connections = 4000

## 日志过期时间,包括二进制日志(过期自动删除)
expire_logs_days = 3

character-set-server = utf8  #设置MySQL的默认编码方式
collation-server = utf8_unicode_ci
default-storage-engine = INNODB   #设置MySQL的默认存储引擎

## Enable Per Table Data for InnoDB to shrink ibdata1(innoDB表优化)
innodb_file_per_table = 1
#默认128M,用于存储页面缓存数据外,另外正常情况下还有大约8%的开销,主要用在每个缓存页帧的描述、adaptive hash等数据结构,适当的增加这个参数的大小,可以有效的减少 InnoDB 类型的表的磁盘 I/O 
innodb_buffer_pool_size = 2048M
innodb_log_file_size = 512M
#默认是8MB,InnoDB在写事务日志的时候,为了提高性能,也是先将信息写入Innofb Log Buffer中,当满足innodb_flush_log_trx_commit参数所设置的相应条件(或者日志缓冲区写满)之后,才会将日志写到文件 (或者同步到磁盘)中
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2

## mysql master-slave replication
server-id = 2
log-bin=mysql-bin
#二进制日志大小
max_binlog_size = 512M
binlog_cache_size = 2M
#最大二进制日志的缓存区大小的变量
max_binlog_cache_size = 8M
#主从复制从库开启
#relay_log = mysql-relay-bin
#此参数控制slave数据库是否把从master接受到的log并在本slave执行的内容记录到slave的二进制日志中,主从复制从库开启
#log_slave_updates = 1

binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema

猜你喜欢

转载自blog.csdn.net/qq13650793239/article/details/82705367