• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MYSQL数据库服务器高iowait如何优化

MYSQL数据库服务器高iowait如何优化

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了iowait,MYSQL,服务器等相关知识,希望本文的分享对您有所帮助
一个数据库服务器高iowait的优化案例

1.开发反馈某一测试环境sql运行缓慢,而在其他测试环境该sql运行很快。两个环境其配置相同,均只部署了mysql服务器。

2.执行top命令发现sql运行缓慢的机器上磁盘iowait较sql运行较快的机器高出很多。推测这是导致sql运行缓慢的主因,因为该sql是要读取表,表较大,且要扫描的行数较多。

3.到底是什么导致机器iowait高呢,执行iotop发现消耗io的进程主要是mysql,而且主要是mysql上的读操作。

4.想必是有其他高频运行的查询语句不停从某大表中查询数据,且查询时可能使用不到索引,要扫描的表行数较多,从而导致高频io操作,致使其他需io操作的sql运行缓慢。

5.究竟是什么sql引起的呢?开启了general log,发现收集到的语句太多,且不能很好定位到高开销的sql。

6.开启slow log,long_query_time置为1,来捕获慢查询,同时使用pt-ioprofile用来追踪mysql数据文件中哪些文件上的io消耗比较多。

7.综合slow log(可使用pt-query-digest进行聚合)和pt-ioprofile的结果发现确实是两条典型的需要扫描全表的且对应的表非常大的sql频繁执行导致了磁盘的高io。

8.那么剩下的问题便是优化表或者查询了。最简单直接的是通过建合适的索引来提升查询性能,减少表扫描行数,需要继续榨取性能的话就是优化sql的写法,调整表结构,调整参数配置来解决了。

9.先从收益最大的方法入手,先评估sql语句,根据语句中的条件查看各个字段的数据分布情况,通过explain等评估在字段上创建索引或多列联合索引的合理性,并创建合适的索引。

10.最后发现建好索引后原来需要扫全表的语句通过索引可有效减少扫描行数,继而io操作减少了,服务器的iowait讲题,原来反馈的运行较慢的sql运行速度得以提升,但还是不够理想。

11.最后通过在该慢语句对应的表建索引,并修正where条件中使用错误的值类型极大的提升了sql语句运行速度,且服务器整体IO消耗大大降低。

12.可通过pt-query-digest聚合优化后mysql server产生的slow log以及使用pt-ioprofile分析优化后mysql数据文件io占用情况,可了解到优化前后的差异情况。

以上就是MYSQL数据库服务器高iowait如何优化的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MYSQL数据库服务器高iowait如何优化

相关文章

  • 2018-12-05SQL SERVER 查询正在实行的SQL语句
  • 2017-05-11总结MySQL建表、查询优化的一些实用小技巧
  • 2018-12-05MySQL入门之C语言操作MySQL
  • 2018-12-05MySQL 温故而知新--Innodb存储引擎中的锁
  • 2018-12-05mysql的安装信息如何在linux服务器下查看(图)
  • 2018-12-05MySQL之-实现MSS主从复制(读写分离)的示例代码
  • 2018-12-05mysql 5.7.11 winx64安装配置方法图文教程_MySQL
  • 2018-12-05用Oracle并行查询发挥多CPU的威力
  • 2018-12-0525行实现mysql树查询代码详解
  • 2018-12-05mysql 小技巧

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL之-CentOS6.5 编译安装MySQL5.6.16的详细代码介绍
    • MYSQL_多版本并发控制、存储引擎、索引简介
    • SQL查找某一条记录的方法
    • MySQL5.7如何实现双主同步部分表的过程介绍
    • 数据库远程全备份的一种解决方案
    • Spring Boot添加MySQL数据库及JPA实例的示例代码分享
    • 提高MySQL中数据装载效率
    • SQL Server约束增强的两点建议
    • MySQL 自动备份与数据库被破坏后的恢复方法第1/2页
    • MYSQL的binary解决mysql数据大小写敏感问题的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有