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 Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何優化MySQL連線速度?概述:MySQL是一種廣泛使用的關聯式資料庫管理系統,常用於各種應用程式的資料儲存和管理。在開發過程中,MySQL連線速度的最佳化對於提高應用程式的效能至關重要。本文將介紹一些優化MySQL連線速度的常用方法和技巧。目錄:使用連線池調整連線參數最佳化網路設定使用索引和快取避免長時間空閒連線配置適當的硬體資源總結正文:使用連線池

在當前網路時代,數據的重要性不言而喻。作為網路應用的核心組成部分之一,資料庫的備份與復原工作顯得格外重要。然而,隨著資料量的不斷增大和業務需求的日益複雜,傳統的資料庫備份與復原方案已無法滿足現代應用的高可用和高效能要求。因此,對MySQL資料庫備份與復原效能進行最佳化成為亟需解決的問題。在實務過程中,我們採取了一系列的專案經驗,有效提升了MySQL數據

MySQL效能最佳化實戰指南:深入理解B+樹索引引言:MySQL作為開源的關聯式資料庫管理系統,廣泛應用於各個領域。然而,隨著資料量的不斷增加和查詢需求的複雜化,MySQL的效能問題也越來越突出。其中,索引的設計和使用是影響MySQL效能的關鍵因素之一。本文將介紹B+樹索引的原理,並以實際的程式碼範例展示如何最佳化MySQL的效能。一、B+樹索引的原理B+樹是一

隨著網路的快速發展,MySQL資料庫也成為了許多網站、應用程式甚至企業的核心資料儲存技術。然而,隨著資料量的不斷增長和並發存取的急劇提高,MySQL的效能問題也愈發突顯。而PHP的PDO類別也因其高效穩定的效能而被廣泛運用於MySQL的開發與操作。在本篇文章中,我們將介紹如何利用PDO類最佳化MySQL效能,提升資料庫的回應速度與並發存取能力。一、PDO類介紹

在現代應用程式中,MySQL資料庫是一個常見的選擇。然而,隨著資料量的成長和業務需求的不斷變化,MySQL效能可能會受到影響。為了維持MySQL資料庫的高效能,動態SQL語句已成為提升MySQL效能的重要技術手段。什麼是動態SQL語句動態SQL語句是指在應用程式中由程式產生SQL語句的技術,通俗地說就是把SQL語句當成字串來處理。對於大型的應用程序,

MySQL效能最佳化:掌握TokuDB引擎的特性與優勢引言:在大規模資料處理的應用中,MySQL資料庫的效能最佳化是至關重要的任務。 MySQL提供了多種引擎,每種引擎都有不同的功能和優點。本文將介紹TokuDB引擎的特性與優勢,並提供一些程式碼範例,幫助讀者更能理解並應用TokuDB引擎。一、TokuDB引擎的特點TokuDB是一種高效能、高壓縮率的儲存引擎

隨著網路的高速發展,資料的規模不斷擴大,對資料庫儲存和查詢效率的需求也越來越高。 MySQL作為最常用的開源資料庫,其效能最佳化一直是廣大開發者關注的焦點。本文將介紹一種有效的MySQL效能最佳化技術-垂直分區表,並詳細說明如何實現與應用。一、什麼是垂直分區表?垂直分區表是指將一張表依照列的特性分割,將不同的列儲存在不同的實體儲存設備上,從而提高查詢效率

MySQL資料庫作為一種輕量級關係型資料庫管理系統,被廣泛應用於網際網路應用和企業級系統。在企業級應用中,隨著資料量的增加,資料表的大小也不斷增加,因此,對資料表大小進行有效管理,對於確保資料庫的效能和可靠性至關重要。本文將介紹MySQL中的資料表大小管理技巧。一、資料表劃分隨著資料量的不斷增加,資料表的大小也不斷增加,會導致資料庫效能下降,查詢操作變得緩慢
