首页 数据库 mysql教程 MySQL性能优化之参数配置

MySQL性能优化之参数配置

Jun 07, 2016 pm 04:33 PM
mysql性能优化

通过根据服务器目前状况,修改MySQL的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能。

1、目的:

通过根据服务器目前状况,修改MySQL的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能。

2、服务器参数:

32G内存、4个CPU,每个CPU 8核。

3、MySQL目前安装状况。

    MySQL目前安装,用的是MySQL默认的最大支持配置。拷贝的是my-huge.cnf.编码已修改为UTF-8.具体修改及安装MySQL,可以参考>帮助文档  。

4、修改MySQL配置

打开MySQL配置文件my.cnf

vi  /etc/my.cnf
 

4.1 MySQL非缓存参数变量介绍及修改

4.1.1修改back_log参数值:由默认的50修改为500.(每个连接256kb,占用:125M)

          back_log=500


back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。也就是说,如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。将会报:unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时.

back_log值不能超过TCP/IP连接的侦听队列的大小。若超过则无效,查看当前系统的TCP/IP连接的侦听队列的大小命令:cat /proc/sys/net/ipv4/tcp_max_syn_backlog目前系统为1024。对于Linux系统推荐设置为小于512的整数。修改系统内核参数,)

查看mysql 当前系统默认back_log值,命令:

show variables like 'back_log'; 查看当前数量
 

4.1.2修改wait_timeout参数值,由默认的8小时,修改为30分钟。(本次不用)

          wait_timeout=1800(单位为妙)

我对wait-timeout这个参数的理解:MySQL客户端的数据库连接闲置最大时间值。

说得比较通俗一点,,就是当你的MySQL连接闲置超过一定时间后将会被强行关闭。MySQL默认的wait-timeout  值为8个小时,可以通过命令show variables like 'wait_timeout'查看结果值;。

设置这个值是非常有意义的,比如你的网站有大量的MySQL链接请求(每个MySQL连接都是要内存资源开销的 ),由于你的程序的原因有大量的连接请求空闲啥事也不干,白白占用内存资源,或者导致MySQL超过最大连接数从来无法新建连接导致“Too many connections”的错误。在设置之前你可以查看一下你的MYSQL的状态(可用show processlist),如果经常发现MYSQL中有大量的Sleep进程,则需要 修改wait-timeout值了。

interactive_timeout:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。

wait_timeout:服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局 interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义).

这两个参数必须配合使用。否则单独设置wait_timeout无效

4.1.3修改max_connections参数值,由默认的151,修改为3000(750M)。

    max_connections=3000


max_connections是指MySql的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySql会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。可以过'conn%'通配符查看当前状态的连接数量,以定夺该值的大小。

MySQL服务器允许的最大连接数16384;

查看系统当前最大连接数:

show variables like 'max_connections';

4.1..4修改max_user_connections值,由默认的0,修改为800

    max_user_connections=800


 max_user_connections是指每个数据库用户的最大连接

针对某一个账号的所有客户端并行连接到MYSQL服务的最大并行连接数。简单说是指同一个账号能够同时连接到mysql服务的最大连接数。设置为0表示不限制。

目前默认值为:0不受限制。

这儿顺便介绍下Max_used_connections:它是指从这次mysql服务启动到现在,同一时刻并行连接数的最大值。它不是指当前的连接情况,而是一个比较值。如果在过去某一个时刻,MYSQL服务同时有1000个请求连接过来,而之后再也没有出现这么大的并发请求时,则Max_used_connections=1000.请注意与show variables 里的max_user_connections的区别。默认为0表示无限大。

查看max_user_connections值

show variables like 'max_user_connections';

--------------------------------------分割线 --------------------------------------

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

MySQL-5.5.38通用二进制安装

--------------------------------------分割线 --------------------------------------

 

更多详情见请继续阅读下一页的精彩内容:

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何优化MySQL连接速度? 如何优化MySQL连接速度? Jun 29, 2023 pm 02:10 PM

如何优化MySQL连接速度?概述:MySQL是一种广泛使用的关系型数据库管理系统,常用于各种应用程序的数据存储和管理。在开发过程中,MySQL连接速度的优化对于提高应用程序的性能至关重要。本文将介绍一些优化MySQL连接速度的常用方法和技巧。目录:使用连接池调整连接参数优化网络设置使用索引和缓存避免长时间空闲连接配置合适的硬件资源总结正文:使用连接池

MySQL数据库备份与恢复性能优化的项目经验解析 MySQL数据库备份与恢复性能优化的项目经验解析 Nov 02, 2023 am 08:53 AM

在当前互联网时代,数据的重要性不言而喻。作为互联网应用的核心组成部分之一,数据库的备份与恢复工作显得尤为重要。然而,随着数据量的不断增大和业务需求的日益复杂,传统的数据库备份与恢复方案已无法满足现代应用的高可用和高性能要求。因此,对MySQL数据库备份与恢复性能进行优化成为一个亟需解决的问题。在实践过程中,我们采取了一系列的项目经验,有效提升了MySQL数据

如何用PHP的PDO类实现MySQL的性能优化 如何用PHP的PDO类实现MySQL的性能优化 May 10, 2023 pm 11:51 PM

随着互联网的飞速发展,MySQL数据库也成为了许多网站、应用程序甚至企业的核心数据存储技术。然而,随着数据量的不断增长和并发访问的急剧提高,MySQL的性能问题也愈发突显。而PHP的PDO类也因其高效稳定的性能被广泛运用于MySQL的开发和操作中。在本篇文章中,我们将介绍如何利用PDO类优化MySQL性能,提高数据库的响应速度和并发访问能力。一、PDO类介绍

如何通过使用动态SQL语句来提高MySQL性能 如何通过使用动态SQL语句来提高MySQL性能 May 11, 2023 am 09:28 AM

在现代应用程序中,MySQL数据库是一个常见的选择。然而,随着数据量的增长和业务需求的不断变化,MySQL性能可能会受到影响。为保持MySQL数据库的高性能,动态SQL语句已经成为了提高MySQL性能的一种重要技术手段。什么是动态SQL语句动态SQL语句是指在应用程序中由程序生成SQL语句的技术,通俗地说就是把SQL语句当成字符串来处理。对于大型的应用程序,

MySQL性能优化实战指南:深入理解B+树索引 MySQL性能优化实战指南:深入理解B+树索引 Jul 25, 2023 pm 08:02 PM

MySQL性能优化实战指南:深入理解B+树索引引言:MySQL作为开源的关系型数据库管理系统,被广泛应用于各个领域。然而,随着数据量的不断增加和查询需求的复杂化,MySQL的性能问题也越来越突出。其中,索引的设计和使用是影响MySQL性能的关键因素之一。本文将介绍B+树索引的原理,并以实际的代码示例展示如何优化MySQL的性能。一、B+树索引的原理B+树是一

MySQL性能优化:掌握TokuDB引擎的特点与优势 MySQL性能优化:掌握TokuDB引擎的特点与优势 Jul 25, 2023 pm 07:22 PM

MySQL性能优化:掌握TokuDB引擎的特点与优势引言:在大规模数据处理的应用中,MySQL数据库的性能优化是一个至关重要的任务。MySQL提供了多种引擎,每种引擎都有不同的特点和优势。本文将介绍TokuDB引擎的特点与优势,并提供一些代码示例,帮助读者更好地理解和应用TokuDB引擎。一、TokuDB引擎的特点TokuDB是一种高性能、高压缩率的存储引擎

如何通过垂直分区表来提高MySQL性能 如何通过垂直分区表来提高MySQL性能 May 10, 2023 pm 09:31 PM

随着互联网的高速发展,数据的规模不断扩大,对于数据库存储和查询效率的需求也越来越高。MySQL作为最常用的开源数据库,其性能优化一直是广大开发者关注的焦点。本文将介绍一种有效的MySQL性能优化技术——垂直分区表,并详细讲解如何实现和应用。一、什么是垂直分区表?垂直分区表是指将一张表根据列的特性进行分割,将不同的列存储在不同的物理存储设备上,从而提高查询效率

MySQL中的数据表大小管理技巧 MySQL中的数据表大小管理技巧 Jun 15, 2023 am 09:28 AM

MySQL数据库作为一种轻量级关系型数据库管理系统,被广泛应用于互联网应用和企业级系统中。在企业级应用中,随着数据量的增加,数据表的大小也不断增加,因此,对数据表大小进行有效地管理,对于保证数据库的性能和可靠性至关重要。本文将介绍MySQL中的数据表大小管理技巧。一、数据表划分随着数据量的不断增加,数据表的大小也不断增加,会导致数据库性能下降,查询操作变得缓

See all articles