云服务器促销,免费安装宝塔面板!
开启左侧

[其他教程] 宝塔面板怎么优化Mysql数据库性能?

[复制链接]
民审大大 发表于 2017-9-8 23:41:51 | 显示全部楼层 |阅读模式

本站会员必须 邮箱验证成功后 才能发帖。马上注册查阅更多教程,下载海量资源,让你轻松玩做站

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
   在PHP+MYSQL架构网站运行过程中,往往会遇到各种性能问题影响,如MySQL、PHP、CPU、磁盘IO、缓存等,其中MySQL瓶颈就是最常见也最难解决的一种影响网站性能的因素;通常,我们会使用redis、memcached等缓存软件来缓存内容,这确实是最优的解决方案之一,但这需要网站程序的支持,然而多数常用网站程序并不支持或者不能完美支持这些缓存软件,今天我们就来谈谈如何通过MySQL自身的配置调整来优化MySQL性能,以缓解MySQL瓶颈问题。2 D2 d5 a9 U: c, q5 y! p+ f# B: r
) C6 }- `3 N6 m' o2 O- y. q$ a, C

% a, P' i* b: l/ e) I0 g5 U/ k' y准备:! j  ^6 T+ g1 ?
    1、宝塔Linux面板 正式版 5.2.0+ (2017/09/20发布)  测试版5.2.4+( x- G( r) \8 C# L, `) x% Q1 C
    2、MySQL 5.x2 i' K& e! _# M* J8 b/ s" E+ L
, j: B9 {2 L8 Y( G; N
8 U7 `5 w4 I2 K
4 U& N" C' r1 r6 b" c( Z! Z' }) s
通常MySQL调优我们分以下几部分:
2 L- j0 [( e! Q! P, k* D    1、MySQL配置参数调优 (需要根据网站运行情况调整)6 P6 F& x( y  A2 L7 F
    2、数据表索引调优 (效果明显,但通常优秀的开源程序都不需要调整)1 W0 e8 ~& N/ f/ ^! r* N, E
    3、SQL语句调优 (这是程序员或DBA干的事)( w4 W/ i9 g9 J

& }( e' E, V) Z6 e
0 c" p5 e5 b  W4 a0 L7 K" w# c今天我们主要谈谈如果配合宝塔面板的新功能来进行MySQL配置参数调优,我们先来看两张图片:
: C0 m$ b8 y( F6 }  l" v; Q- S7 Z+ s9 d$ ]5 G9 Q% {+ U0 f4 ^* k
(图1), [! Z7 L" P8 x& q. \
  
( P, b, S* v. b# t1 k2 _
3 i+ d! d) b9 M' ^(图2)- _3 [0 s' |2 F/ V  b
  1 V8 m6 J5 _4 T, c; |$ ^1 L
" n) g5 {0 V- ~2 a8 m# l7 D
很明显,(图1)显示的是MySQL当前的运行状态,(图2)显示的是MySQL主要配置参数( C" E7 q4 K6 v2 D
! }- I( a; T9 v( s9 }# W  a
下面我们就来解读一下这两张图:8 _, d( A* g9 R# F' Z! a

9 Q2 z% x# M  p# B 1.png 图1
" E" S0 C$ @- N! A
0 r* O. k% O  e7 K, O( z* _7 ]; T: h7 Y
2.png
$ \# p6 t6 b4 b9 J1 I图2! n  ?. y/ p% X( s& \0 s/ f$ X' t

( C& N/ }2 A5 L6 @
2 |4 P/ l. r7 j# y( N9 ~. Q+ k0 J4 V
5 E7 M% E, B; S: U0 H
      (图1)中线程缓存命中率为99.78%,若这个值小于90%,建议适当增加(图2)中的thread_cache_size,建议每次增加8。* F6 G/ N4 \: m- [
' ~8 Z- X) d: R2 w9 M
. s+ W" Z  `2 g7 P% ?2 }6 m
3、索引命中率# j0 S  c6 E' Z0 P6 \
      (图1)中索引命中率为99.50%,若这个值小于95%,建议适当增加(图2)中的key_buffer_size,建议每次增加64,需要说明的是,若您的数据库使用的是Innodb引擎,可忽略这个选项
  n5 N0 [+ l* {# z9 {5 }4 t. I$ Q7 L4 z/ Q
4、Innodb索引命中率 ' F- Y: l0 H  g4 Q) m
      (图1)中Innodb索引命中率为100%,若这个值小于95%,建议适当增加(图2)中的innodb_buffer_pool_size,建议每次增加64,需要说明的是,若您的数据库没有使用Innodb引擎,可忽略这个选项- K! d9 f( i+ s  R

% j+ {* \  R& B/ U. L5、查询缓存命中率4 S* I# o1 b* a6 I
      MySQL查询缓存是个比较受争议的功能,个人建议当你有在使用redis、memcached等缓存软件时,在(图2)中将query_cache_size设为0可以将其关闭,当你没有使用缓存软件,有多余的内存使用,且数据库瓶颈明显存在时,可以尝试开启查询缓存,这是个非常依赖数据表结构及SQL语句优化的功能,若数据表结构和SQL语句都针对查询缓存进行过优化,它的效果还是很不错的。& n) ^8 z8 Y5 X  m+ {% k$ _
3 {+ y" e/ i/ ?, @4 J7 g
6、创建临时表到磁盘
7 G1 _% [% M. m+ w( H( v6 {4 d      (图1)中创建临时表到磁盘的比例是0.42%,这说明大部分临时表创建到内存了,不会过多增加磁盘IO的开销,建议,当比例大于2%时适当增加(图1)中的tmp_cache_size,建议每次增加32,当比例大于60%时,放弃吧,有些开源程序并没有专门优化过SQL语句,所以在运行过程中会开启大量临时表,加多少缓存都是不够用的。
: b+ ]8 O( H$ n5 \+ ]
# M) D# f  [1 `/ q( c2 G: H0 S6 V* v& p- l' a3 w4 g7 _! R
7、已打开的表" T2 J6 J, v) S* a7 V& Q) q4 J- P
      当(图1)中的已打开的表接近或等于(图2)中的table_open_cache时,可以适当增加table_open_cache,但若设置过大可能导致您的程序频繁中断MySQL连接,建议在1024以内,最大不要超过2048。
& v8 n& h# r7 v3 b3 H5 j
! z* g( d7 a5 K3 L8、没有使用索引的量、没有使用索引的JOIN量
6 }# U- l& W% l& ?) [( _      若不为0,就检查下数据表索引吧,其实只要没有疯涨,比如一天增涨几千,一般可以忽略,必竟优化索引还是程序员或DBA去干比较合适。( ]; c1 _/ s; m& U
% E; b! O& L+ p( i+ G' Y: o) S
9、排序后的合并次数$ J$ S2 \/ n( K* @
      如果这个值在缓慢增张,建议适当增加(图2)中的sort_cache_size,建议每次增加512,但最大不要超过8192,如果这个值一直在疯涨,增加sort_cache_size也没用,就放弃这个选项吧,这个锅还是给程序开发者背。
; c% P$ y# J) x4 O3 _7 T
/ f$ o/ v( J" }8 n6 r% @, z10、锁表次数
* Q0 X+ r9 D/ d: E      如果服务器CPU开销不大的情况下,疯狂锁表,建议你将所有数据表转换成innodb,记得转换前备份哦。
1 B" R3 W: B8 w' ~- n- Z2 o/ S0 g1 d
11、优化方案
! R8 u* T$ F2 B      这个是我们根据内存大小给的一个推荐优化方案,仅是建议仅用于基础参考值,还是要根据实据情况来调整每一个配置项。8 \# e7 X- W2 d% m$ R" t. @
$ ~# s% i% J( U5 H$ b; ?

8 ?9 b$ q" J( K8 V& _: v注意:保存参数配置后是会立即生效,记得要重启MySQL服务。. u7 H: O' U4 x7 @  W) z. I* P
; y! l" T1 ?& R; t3 }* a
8 ^9 }  G9 s: U9 A2 }
当流科技-专业Discuz建站、仿站业务,专注处理discuz!论坛挂马,专注提供论坛托管维护服务! 提供Discuz论坛空间、VPS、云服务器!咨询QQ 569160956 778521512
回复

使用道具 举报

图片素材 发表于 2017-9-9 15:12:59 | 显示全部楼层
感谢分享mysql优化教程,支持楼主。。。
当流科技-专业Discuz建站、仿站业务,专注处理discuz!论坛挂马,专注提供论坛托管维护服务! 提供Discuz论坛空间、VPS、云服务器!咨询QQ 569160956 778521512
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐

抱歉,当前存在网络问题或服务器繁忙,详细错

主讲:我心枫叶 Discuz!教程

Discuz!论坛网盘附件免跳转下载(手机版网

主讲:当流科技 Discuz插件

宝塔面板绑定域名无法访问后台怎么解决?

主讲:风雨兼程 服务器学院

discuz论坛搬家教程,如何搬迁到新服务器?

主讲:风雨兼程 Discuz!教程

Discuz!X3.3全新安装和升级后快速回复框丢

主讲:风雨兼程 Discuz!教程

宝塔面板phpmyadmin 数据库502 Bad Gateway

主讲:当流科技 服务器学院

宝塔面板mysql怎么用navicat 连接数据库呢

主讲:当流科技 服务器学院

Discuz! X3.4虚拟人气虚拟用户在线插件 完

主讲:执手天涯 Discuz插件

商务合作

0551-66191059
service#dangliu.net
点击这里给我发消息
dz论坛/Discuz!论坛新手

关注微信公众号

QQ扫码 加 DZ技术群