每天进步一点点———— 调整MySQL并发相关参数

来源:互联网 发布:php 数组去重 编辑:程序博客网 时间:2024/06/05 10:37

一、           调整MySQL并发相关参数

1.   调整max_connections提高并发连接

         参数max_connections控制允许连接到MySQL数据库的最大数量,默认值为151。如果状态变量connection_errors_max_connections不为零,并且一直在增长,就说明不断有连接请求因数据库连接数量已经到达最大云溪的值而失败,应该考虑max_connections的值。

         MySQL最大可支持连接取决很多以in苏,包括给定操作系统平台线程库的质量、内存大小、每个连接的符合以及期望的相应时间等。在linux下MySQL支持500~1000个连接不是难事。在windows平台下,受其线程库影响,最大连接数为:(open table*2 +open connections)<2048

         每一个session操作MySQL数据库表都需要占用文件描述符,数据库连接本身也要占用文件描述,因此在增大max_connections时,也要考虑open_files_limit的设置是否够用。

2.   调整back_log

         back_log参数控制MySQL监听TCP端口时设置的挤压请求栈大小,5.6.6版本后默认值为50+(max_connections/5),5.6.6以前是50。

         如果需要漱口在较短时间内处理大量请求,应该考虑适当增大back_log的值。

3.   调整table_open_cache

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

                   max_cannections*N

         在未执行flush table命令的情况下,如果MySQL状态变量opend_tables值较大,就说明table_open_cache设置太小,应适当增大。增大table_open_cache的值,会增加MySQL对文件描述符的使用量,因此,也要注意苹果open-files-limit设置是否够用。

4.   调整thread_cache_size

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

         可以通过计算线程cache的是效率threads_created/connections来横梁thread_cache_size的设置是否合适。该值越接近1,说明cache命中越低,应考虑适当增加thread_cache_size的值。

5.   innodb_lock_wait_timeout的设置

         参数innodb_lock_wait_timeout可以控制InnoDB事务等待行锁的时间,默认值是50ms,可以根据需要动态设置。对于需要快速反馈的交互式OLTP应用,可以将行锁等待超时时间调小,避免事务长时间挂起;对于后台运行的批处理操作,可以讲行锁等待超时时间调大,以避免发生大的回滚操作。

0 0
原创粉丝点击