博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql学习笔记(十二)- 并发参数调节
阅读量:4210 次
发布时间:2019-05-26

本文共 1132 字,大约阅读时间需要 3 分钟。

mysql是多线程结构,包括后台线程和客户服务线程,多线程可以有效利用服务器资源,提高数据库的并发性能。在mysql的并发能力上,主要有有下列参数界定。分别为max_connections,back_log,thread_cache_size,table_open_cache等。

1.调整max_connections提高并发连接数

max_connections表示最大连接数量,默认值为151,如果状态变量connection_errors_max_connctions不为零,并且一直在增长,说明不断有连接请求因为数据库连接数量达到允许的最大值而连接失败,应该考虑增大该值。在linux平台,mysql支持500-1000个连接不是问题,但是再window平台,最大连接数有以下限制:

(open tables*2+open connections)<2048

每个session操作mysql数据库表都需要占用文件描述符,数据库连接本身也要占用文件描述符,因此在增大max_connections时,也要注意评估open-files-limit的设置是否够用!

2.调整back_log

back_log参数控制mysql监听tcp端口时设置的积压请求栈的大小,默认是50,5.6版本之后默认值为50+(max_connections/5),但是最大不能超过900

如果需要数据库在较短时间内处理大量的连接请求,可以考虑增大back_log的值。

3.调整table_open_cache

每一个sql执行线程至少要打开一个表缓存,参数table_open_cache控制所有sql执行线程可以打开表缓存的数量,这个参数应该根据最大连接数max_connections以及每个连接执行关联查询中所涉及的表的最大数量来设定。

max_connections*n

如果mysql的状态变量opened_tables比较大,说明table_open_cache设置的太小,应该适当增大,但是增大table_open_cache的值会增加mysql对文件描述符的使用量,因此也要注意评估open_files_limit的设置是否足够。

4.设置thread_cache_size

为了加快连接数据库的速度,mysql会缓存一定数量的客户服务线程以备重用,通过参数thread_cache_size可控制mysql缓存客户端服务线程的数量

5.innodb_lock_wait_timeout的设置

参数innodb_lock_wait_timeout控制innodb事务执行锁的时间,默认为50ms,可以根据动态调整。对于后台执行的批处理操作,可以调大避免回滚。

转载地址:http://pekmi.baihongyu.com/

你可能感兴趣的文章
inf文件解析
查看>>
MOSFET结构及其工作原理详解
查看>>
android开源社区
查看>>
手机摄像头工作原理
查看>>
手机电容触摸屏技术简介
查看>>
led子系统 及 内核中led触发器实例
查看>>
Android USB Tethering的实现以及代码流程
查看>>
有关电池充电和LCD驱动的好地方
查看>>
USB规范浏览--设备和主机规范
查看>>
男人的品位--我们自己的最求
查看>>
Android (Linux) Suspend流程
查看>>
LINUX时间管理
查看>>
定时器的使用
查看>>
为Android加入busybox工具
查看>>
使用技巧busybox
查看>>
如何查看与/dev/input目录下的event对应的设备
查看>>
Linux系统时间与RTC时间
查看>>
TF卡和SD卡理解
查看>>
在 Java 中应用设计模式 - Factory Method .
查看>>
Linux Kernel Boot CMDLINE Processing
查看>>