文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL 高性能优化实战总结

2017-04-23 23:58

关注

MySQL 高性能优化实战总结

如图 - MySQL 查询过程

优化有风险,涉足需谨慎

1、优化的哲学

1.1、优化可能带来的问题

1.2、优化的需求

2、优化思路

2.1、优化什么

在数据库优化上有两个主要方面:即安全与性能。

2.2、优化的范围有哪些

储存、主机和操作系统方面:

应用程序方面:

数据库优化方面:

注:不管是在设计系统,定位问题还是优化,都可以按照这个顺序执行。

2.3、优化维度

数据库的优化维度有四个:

SQL及索引、数据库表结构、系统配置、硬件

优化选择:

3、优化工具

3.1、数据库层面

检查问题常用工具:

不常用但好用的工具:

3.2、数据层面问题解决思路

一般应急调优的思路:

针对突然的业务办理卡顿,无法进行正常的业务处理!需要立马解决的场景!

常规调优思路:

针对业务周期性的卡顿,例如在每天 10-11 点业务特别慢,但是还是能够使用,过了这段时间就好了。

3.3、系统层面

cpu方面: vmstat、sar top、htop、nmon、mpstat

内存: free 、ps -aux

IO设备(磁盘、网络):iostat 、 ss 、 netstat 、 iptraf、iftop、lsof

vmstat 命令说明:

iostat命令说明

实例命令: iostat -dk 1 5

iostat -d -k -x 5 (查看设备使用率(%util)和响应时间(await))

3.4、系统层面问题解决办法

你认为到底负载高好,还是低好呢?

在实际的生产中,一般认为 cpu 只要不超过 90% 都没什么问题。

不排除以下特殊情况:

问题一:cpu 负载高,IO 负载低

问题二:IO负载高,cpu 负载低

问题三:IO和cpu负载都很高

4、基础优化

4.1、优化思路

定位问题点:

硬件 --> 系统 --> 应用 --> 数据库 --> 架构(高可用、读写分离、分库分表)

处理方向:

明确优化目标、性能和安全的折中、防患未然

4.2、硬件优化:

主机方面:

cpu的选择:

内存的选择:

存储方面:

raid卡:主机raid卡选择:

网络设备方面:

使用流量支持更高的网络设备(交换机、路由器、网线、网卡、HBA卡)

注意:以上这些规划应该在初始设计系统时就应该考虑好。

4.3、服务器硬件优化

4.4、系统优化

Cpu:

基本不需要调整,在硬件选择方面下功夫即可。

内存:

基本不需要调整,在硬件选择方面下功夫即可。

SWAP:

MySQL尽量避免使用swap,阿里云的服务器中默认swap为0。

IO :

这个参数决定了Linux是倾向于使用swap,还是倾向于释放文件系统cache。在内存紧张的情况下,数值越低越倾向于释放文件系统cache。当然,这个参数只能减少使用swap的概率,并不能避免Linux使用swap。

修改MySQL的配置参数innodb_flush_method,开启O_DIRECT模式。这种情况下,InnoDB的buffer pool会直接绕过文件系统cache来访问磁盘,但是redo log依旧会使用文件系统cache。值得注意的是,Redo log是覆写模式的,即使使用了文件系统的cache,也不会占用太多。

IO调度策略:

4.5、系统参数调整

Linux 系统内核参数优化

用户限制参数(mysql可以不设置以下配置):

4.6、应用优化

业务应用和数据库应用独立,防火墙:iptables、selinux等其他无用服务(关闭):

安装图形界面的服务器不要启动图形界面 runlevel 3,另外,思考将来我们的业务是否真的需要MySQL,还是使用其他种类的数据库。用数据库的最高境界就是不用数据库。

5、数据库优化

SQL优化方向:

执行计划、索引、SQL改写

架构优化方向:

高可用架构、高性能架构、分库分表

5.1、数据库参数优化

调整:实例整体(高级优化,扩展)

连接层(基础优化)

设置合理的连接客户和连接方式

SQL层(基础优化)

5.2、存储引擎层(innodb基础优化参数)

以上是微信公众号上看到的:点击前往原文

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯