最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-09 08:47:31
文档

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

MYSQL数据库服务器高iowait如何优化:一个数据库服务器高iowait的优化案例1.开发反馈某一测试环境sql运行缓慢,而在其他测试环境该sql运行很快。两个环境其配置相同,均只部署了mysql服务器。2.执行top命令发现sql运行缓慢的机器上磁盘iowait较sql运行较快的机器高出很多。推测这是导致sql运行
推荐度:
导读MYSQL数据库服务器高iowait如何优化:一个数据库服务器高iowait的优化案例1.开发反馈某一测试环境sql运行缓慢,而在其他测试环境该sql运行很快。两个环境其配置相同,均只部署了mysql服务器。2.执行top命令发现sql运行缓慢的机器上磁盘iowait较sql运行较快的机器高出很多。推测这是导致sql运行


一个数据库服务器高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如何优化

MYSQL数据库服务器高iowait如何优化:一个数据库服务器高iowait的优化案例1.开发反馈某一测试环境sql运行缓慢,而在其他测试环境该sql运行很快。两个环境其配置相同,均只部署了mysql服务器。2.执行top命令发现sql运行缓慢的机器上磁盘iowait较sql运行较快的机器高出很多。推测这是导致sql运行
推荐度:
标签: 服务器 mysql 优化
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top