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通用二进制安装
--------------------------------------分割线 --------------------------------------
更多详情见请继续阅读下一页的精彩内容:

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL 연결 속도를 최적화하는 방법은 무엇입니까? 개요: MySQL은 다양한 애플리케이션에서 데이터 저장 및 관리에 일반적으로 사용되는 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. 개발 중에는 애플리케이션 성능을 향상시키기 위해 MySQL 연결 속도를 최적화하는 것이 중요합니다. 이 기사에서는 MySQL 연결 속도를 최적화하기 위한 몇 가지 일반적인 방법과 기술을 소개합니다. 목차: 연결 매개변수를 조정하고 네트워크 설정을 최적화하려면 연결 풀을 사용하세요. 긴 유휴 연결을 방지하려면 요약: 연결 풀을 사용하세요.

현 인터넷 시대에 데이터의 중요성은 자명합니다. 인터넷 애플리케이션의 핵심 구성 요소 중 하나인 데이터베이스 백업 및 복구 작업은 특히 중요합니다. 그러나 데이터 양이 계속 증가하고 비즈니스 요구 사항이 점점 더 복잡해짐에 따라 기존 데이터베이스 백업 및 복구 솔루션은 더 이상 최신 애플리케이션의 고가용성 및 고성능 요구 사항을 충족할 수 없습니다. 따라서 MySQL 데이터베이스의 백업 및 복구 성능을 최적화하는 것이 해결해야 할 시급한 문제가 되었습니다. 실제로 우리는 MySQL 데이터를 효과적으로 개선하기 위해 일련의 프로젝트 경험을 채택했습니다.

MySQL 성능 최적화 실용 가이드: B+ 트리 인덱스에 대한 심층적인 이해 소개: 오픈 소스 관계형 데이터베이스 관리 시스템인 MySQL은 다양한 분야에서 널리 사용되고 있습니다. 그러나 데이터의 양이 계속 증가하고 쿼리 요구 사항이 더욱 복잡해짐에 따라 MySQL의 성능 문제는 점점 더 두드러지고 있습니다. 그 중 인덱스의 설계와 사용은 MySQL 성능에 영향을 미치는 주요 요소 중 하나입니다. 이번 글에서는 B+ 트리 인덱스의 원리를 소개하고, 실제 코드 예시를 통해 MySQL의 성능을 최적화하는 방법을 보여드리겠습니다. 1. B+ 트리 인덱스의 원리 B+ 트리는

인터넷의 급속한 발전으로 인해 MySQL 데이터베이스는 많은 웹사이트, 애플리케이션, 심지어 기업의 핵심 데이터 저장 기술이 되었습니다. 그러나 데이터 볼륨의 지속적인 증가와 동시 액세스의 급격한 증가로 인해 MySQL의 성능 문제는 점점 더 두드러지고 있습니다. PHP의 PDO 클래스는 효율적이고 안정적인 성능으로 인해 MySQL 개발 및 운영에도 널리 사용됩니다. 이 기사에서는 PDO 클래스를 사용하여 MySQL 성능을 최적화하고 데이터베이스의 응답 속도와 동시 액세스 기능을 향상시키는 방법을 소개합니다. 1. PDO 클래스 소개

최신 애플리케이션에서는 MySQL 데이터베이스가 일반적인 선택입니다. 그러나 데이터 볼륨이 증가하고 비즈니스 요구 사항이 계속 변화함에 따라 MySQL 성능이 저하될 수 있습니다. MySQL 데이터베이스의 고성능을 유지하기 위해 동적 SQL 문은 MySQL의 성능을 향상시키는 중요한 기술적 수단이 되었습니다. 동적 SQL 문이란 무엇입니까? 동적 SQL 문은 애플리케이션에서 프로그램으로 SQL 문을 생성하는 기술을 의미합니다. 대규모 애플리케이션의 경우,

MySQL 성능 최적화: TokuDB 엔진의 특성과 장점을 익히십시오. 소개: 대규모 데이터 처리 애플리케이션에서 MySQL 데이터베이스의 성능 최적화는 중요한 작업입니다. MySQL은 각각 다른 기능과 장점을 지닌 다양한 엔진을 제공합니다. 이 기사에서는 TokuDB 엔진의 기능과 장점을 소개하고 독자가 TokuDB 엔진을 더 잘 이해하고 적용하는 데 도움이 되는 몇 가지 코드 예제를 제공합니다. 1. TokuDB 엔진의 특징 TokuDB는 고성능, 높은 압축률의 스토리지 엔진입니다.

인터넷의 급속한 발전으로 인해 데이터의 규모는 계속해서 늘어나고 있으며, 데이터베이스 저장 및 쿼리 효율성에 대한 요구도 높아지고 있습니다. 가장 일반적으로 사용되는 오픈 소스 데이터베이스인 MySQL의 성능 최적화는 항상 개발자의 초점이었습니다. 본 글에서는 효과적인 MySQL 성능 최적화 기술인 수직 파티션 테이블을 소개하고, 이를 구현하고 적용하는 방법을 자세히 설명합니다. 1. 수직 파티션 테이블이란 무엇입니까? 수직으로 분할된 테이블은 쿼리 효율성을 높이기 위해 테이블을 컬럼 특성에 따라 나누어 서로 다른 물리적 저장 장치에 서로 다른 컬럼을 저장하는 것을 의미합니다.

경량 관계형 데이터베이스 관리 시스템인 MySQL 데이터베이스는 인터넷 애플리케이션과 기업 수준 시스템에서 널리 사용됩니다. 기업 수준의 애플리케이션에서는 데이터 양이 증가함에 따라 데이터 테이블의 크기도 계속해서 증가합니다. 따라서 데이터베이스의 성능과 안정성을 보장하려면 데이터 테이블 크기를 효과적으로 관리하는 것이 중요합니다. 이 기사에서는 MySQL의 데이터 테이블 크기 관리 기술을 소개합니다. 1. 데이터 테이블 분할 데이터의 양이 계속 증가함에 따라 데이터 테이블의 크기도 계속 증가하여 데이터베이스 성능이 저하되고 쿼리 작업 속도가 느려집니다.
