在PHP+MYSQL架构网站运行过程中,往往会遇到各种性能问题影响,如MySQL、PHP、CPU、磁盘IO、缓存等,其中MySQL瓶颈就是最常见也最难解决的一种影响网站性能的因素;通常,我们会使用redis、memcached等缓存软件来缓存内容,这确实是最优的解决方案之一,但这需要网站程序的支持,然而多数常用网站程序并不支持或者不能完美支持这些缓存软件,今天我们就来谈谈如何通过MySQL自身的配置调整来优化MySQL性能,以缓解MySQL瓶颈问题。

准备:

1、宝塔Linux面板 正式版 5.2.0+ (2017/09/20发布)  测试版5.2.4+

2、MySQL 5.x

通常MySQL调优我们分以下几部分:

1、MySQL配置参数调优 (需要根据网站运行情况调整)

2、数据表索引调优 (效果明显,但通常优秀的开源程序都不需要调整)

3、SQL语句调优 (这是程序员或DBA干的事)

今天我们主要谈谈如果配合宝塔面板的新功能来进行MySQL配置参数调优,我们先来看两张图片:

(图1)

(图2)

很明显,(图1)显示的是MySQL当前的运行状态,(图2)显示的是MySQL主要配置参数

下面我们就来解读一下这两张图:

1、活动/峰值连接数

(图1)中当前活动的连接为1个,自MySQL服务启动以来,最高连接数为54;当最高连接数接近或等于(图2)中的max_connections时,应适当增加max_connections,需要注意的是,不要一下子增加过多,建议每次增加50,观察一段时间,不够再继续增加。

2、线程缓存命中率

(图1)中线程缓存命中率为99.78%,若这个值小于90%,建议适当增加(图2)中的thread_cache_size,建议每次增加8。

3、索引命中率

(图1)中索引命中率为99.50%,若这个值小于95%,建议适当增加(图2)中的key_buffer_size,建议每次增加64,需要说明的是,若您的数据库使用的是Innodb引擎,可忽略这个选项

4、Innodb索引命中率

(图1)中Innodb索引命中率为100%,若这个值小于95%,建议适当增加(图2)中的innodb_buffer_pool_size,建议每次增加64,需要说明的是,若您的数据库没有使用Innodb引擎,可忽略这个选项

5、查询缓存命中率

MySQL查询缓存是个比较受争议的功能,个人建议当你有在使用redis、memcached等缓存软件时,在(图2)中将query_cache_size设为0可以将其关闭,当你没有使用缓存软件,有多余的内存使用,且数据库瓶颈明显存在时,可以尝试开启查询缓存,这是个非常依赖数据表结构及SQL语句优化的功能,若数据表结构和SQL语句都针对查询缓存进行过优化,它的效果还是很不错的。

6、创建临时表到磁盘

(图1)中创建临时表到磁盘的比例是0.42%,这说明大部分临时表创建到内存了,不会过多增加磁盘IO的开销,建议,当比例大于2%时适当增加(图1)中的tmp_cache_size,建议每次增加32,当比例大于60%时,放弃吧,有些开源程序并没有专门优化过SQL语句,所以在运行过程中会开启大量临时表,加多少缓存都是不够用的。

7、已打开的表

当(图1)中的已打开的表接近或等于(图2)中的table_open_cache时,可以适当增加table_open_cache,但若设置过大可能导致您的程序频繁中断MySQL连接,建议在1024以内,最大不要超过2048。

8、没有使用索引的量、没有使用索引的JOIN量

若不为0,就检查下数据表索引吧,其实只要没有疯涨,比如一天增涨几千,一般可以忽略,必竟优化索引还是程序员或DBA去干比较合适。

9、排序后的合并次数

如果这个值在缓慢增张,建议适当增加(图2)中的sort_buffer_size,建议每次增加512,但最大不要超过8192,如果这个值一直在疯涨,增加sort_buffer_size也没用,就放弃这个选项吧,这个锅还是给程序开发者背。

10、锁表次数

如果服务器CPU开销不大的情况下,疯狂锁表,建议你将所有数据表转换成innodb,记得转换前备份哦。

11、优化方案

这个是我们根据内存大小给的一个推荐优化方案,仅是建议仅用于基础参考值,还是要根据实据情况来调整每一个配置项。

注意:保存参数配置后不会立即生效,记得要重启MySQL服务。

宝塔mysql优化_宝塔面板下实现MySQL性能优化处理相关推荐

  1. linux设置mysql定时任务_原创 Linux下实现Mysql定时任务备份数据

    本实例将创建目录放置于/mnt目录下,可根据具体情况放置于其他目录: cd /mnt mkdir dbback pwd /mnt/dbback 创建shell脚本 脚本名称可根据自己规范进行自定义: ...

  2. vue渲染大量数据如何优化_加速vue组件渲染之性能优化

    背景 平时在用vue开发后台管理系统的时候,应该会用到大量的table这种组件,正常这种组件我们会在项目里做二次封装,然后针对表头title做参数化配置,如下: export default { da ...

  3. java tps 优化_高tps下,java性能调优

    之前参与了系统调优,感觉挺有收获了,现在记录一下. 处理xml时,理清楚报文格式,避免使用jdom解析 我们在做压测的时候,发现有一个程序响应非常慢,使用jstack定位到慢的地方:解析xml报文.x ...

  4. linux查看mysql连接日志文件,linux下查看mysql日志文件的方法

    查看mysql日志方法: mysql默认不允许我们查看日志.需要更改一些设置 1 vi 更改配置文件 允许用户查看日志文件 sudo vi /etc/mysql/mysql.conf.d/mysqld ...

  5. mysql官网下载ubuntu_Ubuntu下安装MySQL

    MySQL官网,Ubuntu下的MySQL下载条目太多,太杂,想查怎么用这些包都不知道怎么组织语言,所以使用 apt 下载,并配置: 1.环境信息 系统: 阿里云服务器 Ubuntu 16.04 远程 ...

  6. 读数据库论文-- 多核处理器下事务型数据库性能优化技术综述》

    论文:多核处理器下事务型数据库性能优化技术综述 https://wenku.baidu.com/view/102b5939f61fb7360a4c65bd.html

  7. swoole mysql 并发_如何用Swoole测试MySQL在特定SQL下的并发性能

    场景描述 从全文检索或者缓存中获取ID,根据ID查询数据库获取基础信息,进行页面展示 SQL:select * from table where id in(id1,id2,id3...id40) 此 ...

  8. win下mysql数据库双机配置_[数据库]windows下使用mysql双机热备功能

    [数据库]windows下使用mysql双机热备功能 0 2016-06-16 12:00:05 一. 准备工作 1. 准备两台服务器(电脑),接入局域网中,使互相ping得通对方 2. 两台服务器都 ...

  9. mysql 迁移 乱码_迁移Windows下的MySQL时字符乱码问题

    我们常常会直接复制一份MySQL的Data文件夹到新的环境下,正常情况下重新启动MySQL就可以使用.但有时也会遇到些问题: 1.程序訪问时提示找不到表,实际表已经存在 这样的情况是因为数据库全部者可 ...

  10. vue渲染大量数据如何优化_大数据量场景下的Vue性能优化

    性能优化最常见的落脚点是在网络和dom上,但是在大数据量的场景下,由于Vue本身的特性,可能会造成js运行层面的性能问题,这篇文章讨论的就是针对这一部分的性能优化方案. 模拟一个大数据量的场景 // ...

最新文章

  1. java+flash在线拍照和编辑,保存到服务器(Spring3.2.2+swf+jquery)
  2. 讲座预告 | 全年最值得看的英仙座流星雨要来 如何一晚看上百流星
  3. VLAN TAG 实例
  4. fatal: ‘origin‘ does not appear to be a git repository fatal: Could not read from remote repository.
  5. git detached head
  6. 关于修改密码后,远程服务器项目连接不上数据库的处理办法
  7. 【codeforces 340B】Maximal Area Quadrilateral
  8. python中sorted方法和列表的sort方法使用详解
  9. Linux入门——环境配置
  10. Chrome google浏览器从缓存下载视频
  11. 淘宝Fourinone介绍及与Hadoop的性能PK
  12. 关于mac m1 安装安卓模拟器
  13. linux磁盘介绍及磁盘分区
  14. 【金融财经】金融市场一周简报(2017-09-08)
  15. 设计圈都这么卷的吗!看霜降海报哪家强
  16. 报错 proxyconnect tcp: tls: first record does not look like a TLS handshake
  17. D. Pythagorean Triples (math、暴力)
  18. HEU euler path
  19. Zbrush中常用的8种笔刷,笔刷中的八大金刚你用过几个?
  20. GAN生成对抗网络基础知识

热门文章

  1. 脚本控制向Android模拟拨打电话,发送短信,定位设置功能
  2. 如何在 Python 中使用 ggplot2?
  3. Microbiome:浙大马忠华团队-生防细菌抑制病原真菌新机制
  4. 双非的我科研如何超越双一流!
  5. 上传数据,直接分析,这才是真正的生物云
  6. NC:菌物组构建---随机性v.确定性、干旱胁迫、宿主筛选、统一动态(郭良栋、杨军点评)
  7. 南农沈其荣组Science子刊揭示番茄早期微生物组功能决定成年健康
  8. Science背靠背: NLR受体介导植物抗病反应新机制
  9. P4报名截止|引爆1.1万亿基因测序市场,精准医学50+殿堂级专家议程大曝光
  10. R中控制输出数值的小数点位数round,和有效数字位数signif