MySQL性能分析和优化-part 1

MySQL性能优化

平时我们在使用MySQL的时候,怎么评估系统的运行状态,怎么快速定位系统瓶颈,又如何快速解决问题呢?

本文总结了多年来MySQL优化的经验,系统介绍MySQL优化的方法。

OS性能分析

使用top观察top cpu/memory进程

使用mpstat观察每个CPU核心的CPU使用情况

使用iostat观察系统io状况

使用sar -n DEV观察网卡流量

使用vmstat查看系统内存使用情况

查看系统日志

使用dstat

记录和查看历史数据

查看昨天的数据

查看swap

查看load

查看IO使用情况

查看内存使用情况

查看多核CPU使用情况

MySQL性能分析

配置slowlog

分析slow log

使用pk-query-digest

TCPDUMP + pt-query-digest

通过processlist查看系统当前运行情况

通过genenral log查看系统运行的SQL

通过binlog查看系统DML

查看MySQL错误日志

查看MySQL状态

查看Innodb状态

数据库参数调优

MySQL优化器参数

myisam参数

innodb

原文地址:https://www.cnblogs.com/dtstack/p/9957149.html

时间: 2024-11-08 17:49:45

MySQL性能分析和优化-part 1的相关文章

mysql性能分析与优化

Hash索引的限制 Hash索引必须进行二次查找 Hash索引无法用于排序 Hash索引不支持部分索引查找,也不支持范围查找 Hash索引中Hash码的计算可能存在Hash冲突 为什么要使用索引 索引大大减少了存储引擎需要扫描的数据量 索引可以帮助我们进行排序以避免使用临时表 索引可以把随机I/O变为顺序I/O 索引优化策略 索引列上不能使用表达式或函数 前缀索引和索引列的选择性,索引的选择性是不重复的索引值和表的记录数的比值 联合索引 如何选择索引列的顺序 经常会被使用到的列优先 选择性高的列

MySQL性能分析和优化

1. EXPLAIN 优化你的 SELECT 查询 2. 当只要一行数据时使用 LIMIT 1 3. 为搜索字段建索引 like %最好放右边 4. 尽可能的使用 NOT NULL 5. 在Join表的时候使用相当类型的例,并将其索引 6. 把IP地址存成 UNSIGNED INT 7. 避免 SELECT * 8. 永远为每张表设置一个ID 9. 使用 ENUM 而不是 VARCHAR 10. 选择正确的存储引擎

【转】由浅入深探究mysql索引结构原理、性能分析与优化

摘要: 第一部分:基础知识 第二部分:MYISAM和INNODB索引结构 1.简单介绍B-tree B+ tree树 2.MyisAM索引结构 3.Annode索引结构 4.MyisAM索引与InnoDB索引相比较 第三部分:MYSQL优化 1.表数据类型选择 2.sql语句优化 (1)     最左前缀原则 (1.1)  能正确的利用索引 (1.2)  不能正确的利用索引 (1.3)  如果一个查询where子句中确实不需要password列,那就用“补洞”. (1.4)  like (2)

MySQL性能分析之explain

mysql性能分析之explain Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句. Explain语法:explain select … from … [where …] 例如:explain select * from news; 输出:+--+-----------+-----+----+-------------+---+----

MySQL索引分析与优化

索引分析 - 准备 先创建三张表:tb_emp(员工表)tb_dept(部门表)tb_desc(描述表) 1. tb_emp(员工表) DROP TABLE IF EXISTS `tb_emp`; CREATE TABLE `tb_emp` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `deptid` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=I

linux服务器的性能分析与优化(十三)

[教程主题]:1.linux服务器的性能分析与优化 [主要内容] [1]影响Linux服务器性能的因素 操作系统级 Ø CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少. 另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲,两个4核的CPU整

1.linux服务器的性能分析与优化

[教程主题]:1.linux服务器的性能分析与优化 [课程录制]: 创E [主要内容] [1]影响Linux服务器性能的因素 操作系统级 CPU 目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统性能. 在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少. 另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲,

MySQL性能分析及explain的使用

MySQL性能分析及explain用法的知识是本文我们主要要介绍的内容,接下来就让我们通过一些实际的例子来介绍这一过程,希望能够对您有所帮助. 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id  selecttype  table  type possible_keys  key key_len  ref rows  extra各列. 其中, type=const表示通过索引一次就找到了: key=primar

总结:windows下性能分析以及优化报告

性能分析以及优化     使用的是vs2017自带的性能分析工具. 主要分析了遇到的性能瓶颈,以及想到的优化方法,有的验证了,有的没有来得及. 首先看整体用时以及cpu占有率. 最终在我的设备上(I5-5200U 三星860EVO固态)运行时间约为27.3S.期间cpu占有率比较稳定. 前0.5秒cpu占用率低,大概是因为这段时间是刚开始读取文件,cpu并没有处理任务,后来便进入一边读取一遍计算的状态,cpu占有率就上来了,大概25%,但是还是不高. 而且在这里我遇到一个十分奇怪的现象 直到代码