设为首页 加入收藏

TOP

MySQL 优化配置参数(my.cnf)(四)
2018-11-26 18:10:51 】 浏览:407
Tags:MySQL 优化 配置 参数 my.cnf
次。innodb_flush_log_at_timeout参数的默认值也是1秒刷新一次。

innodb_lock_wait_timeout:InnDB事务等待行锁的时间长度。默认值是50秒。当一个事务锁定了一行,这时另外一个事务想访问并修改这一行,当等待时间达到innodb_lock_wait_timeout参数设置的值时,MySQL会报错"ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction",同时会回滚语句(不是回滚整个事务)。如果想回滚整个事务,需要使用--innodb_rollback_on_timeout参数启动MySQL。在高交互性的应用系统或OLTP系统上,可以减小这个参数来快速显示用户的反馈或把更新放入队列稍后处理。在数据仓库中,为了更好的处理运行时间长的操作,可以增大这个参数。这个参数只应用在InnoDB行锁上,这个参数对表级锁无效。这个参数不适用于死锁,因为发生死锁时,InnoDB会立刻检测到死锁并将发生死锁的一个事务回退。

innodb_fast_shutdown:InnoDB关库模式。如果这个参数为0,InnoDB会做一个缓慢关机,在关机前会做完整的刷新操作,这个级别的关库操作会持续数分钟,当缓存中的数据量很大时,甚至会持续几个小时;如果数据库要执行版本升级或降级,需要执行这个级别的关库操作,以保证所有的数据变更都写入到数据文件。如果这个参数的值是1(默认值),为了节省关库时间,InnoDB会跳过新操作,而是在下一次开机的时候通过crash recovery方式执行刷新操作。如果这个参数的值是2,InnoDB会刷新日志并以冷方式关库,就像MySQL宕机一样,没有提交的事务会丢失,在下一次开启数据库时,crash recovery所需要的时间更长;在紧急或排错情形下,需要立刻关闭数据库时,会使用这种方式停库。


最后附上生产环境中的my.cnf文件


[mysqld]


# 指定端口 不指定默认3306
#port=5603


# mysql数据存放路径
datadir=/var/lib/mysql


# mysql socker文件存放路径
socket=/var/lib/mysql/mysql.sock


# 创建符号链接(建议禁用符号链接,以防止各种安全风险。开启将参数的值设置为1)
symbolic-links=0


# 错误日志存放路径
log-error=/var/log/mysqld.log


# 启动pid文件存放路径
pid-file=/var/run/mysqld/mysqld.pid


# 设置主从的时候的唯一ID 每台主机的ID不可重复
server-id=1


# #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin 
log-bin=mysql-bin


# 设定mysql的复制模式(STATEMENT  ROW  MIXED)
binlog_format=mixed


# 绕过密码验证可直接使用root登录(用于修改密码)
#skip-grant-tables=1


# 启动服务器来禁用主机名缓存
skip-host-cache


# 如果这个参数设为OFF,则MySQL服务在检查客户端连接的时候会解析主机名;如果这个参数设为ON,则MySQL服务只会使用IP,在这种情况下,授权表中的Host字段必须是IP地址或localhost。
skip-name-resolve


# 网络传输时单个数据包的大小
max_allowed_packet = 500M


# 设置数据库的时间
default-time-zone = '+8:00'


# 内部内存临时表的最大内存
tmp_table_size=200M


# MySQL服务器用来作普通索引扫描、范围索引扫描和不使用索引而执行全表扫描这些操作所用的缓存大小。
join_buffer_size = 32M


# 每个会话执行排序操作所分配的内存大小。
sort_buffer_size = 1M


# 每个客户端线程和连接缓存和结果缓存交互,每个缓存最初都被分配大小为net_buffer_length的容量,并动态增长,直至达到max_allowed_packet参数的大小
net_buffer_length = 8K


# 为每个线程对MyISAm表执行顺序读所分配的内存。如果数据库有很多顺序读,可以增加这个参数,默认值是131072字节。
read_buffer_size = 512K


# 这个参数用在MyISAM表和任何存储引擎表随机读所使用的内存。
read_rnd_buffer_size = 32M


# 在REPAIR TABLE、CREATE INDEX 或 ALTER TABLE操作中,MyISAM索引排序使用的缓存大小。
myisam_sort_buffer_size = 256M


# 设置客户端的并发连接数量
max_connections = 8000


# mysql关闭非交互连接前的等待时间,单位是秒
wait_timeout = 604800


# Mysql关闭交互连接前的等待时间,单位是秒
interactive_timeout = 604800


# 设定远程用户必须回应PORT类型数据连接的最大时间
connect_timeout = 30


# 如果客户端尝试连接的错误数量超过这个参数设置的值,则服务器不再接受新的客户端连接。可以通过清空主机的缓存来解除服务器的这种阻止新连接的状态,通过FLUSH HOSTS或mysqladmin flush-hosts命令来清空缓存。
max_connect_errors = 30000


# mysql关闭连接前的等待时间,单位是秒
interactive_timeout = 86400


# 慢查询的时间设置,单位为秒
long_query_time = 20


# mysql服务缓存以重用的线程数
thread_cache_size = 120


# 为查询结果所分配的缓存
query_cache_size = 256M


# 如果一个事务需要的内存超过这个参数,就会报错
max_heap_table_size=2097152000


# 允许一些不合法的操作,5.7版本默认不为空,可以定义(sql_mode='')
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'


#  用来存放Innodb的内部目录 这个值不用分配太大,系统可以自动调。
#innodb_additional_mem_pool_size = 16M


# 日志组中每个日志文件的字节大小。所有日志文件的大小(innodb_log_file_size * innodb_log_files_in_group)不能超过512GB。
innodb_log_file_size = 256M


# InnoDB日志组包含的日志个数。InnoDB以循环的方式写入日志。这个参数的默认值和推荐值均是2。日志的路径由innodb_log_group_home_dir参数设定。
innodb_log_fi

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇CentOS 7下MongoDB 3.6 的安装及.. 下一篇MySQL 5.7多源复制配置详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目