1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > mysql的性能瓶颈_Mysql性能优化(一) - 性能检测与瓶颈分析

mysql的性能瓶颈_Mysql性能优化(一) - 性能检测与瓶颈分析

时间:2021-10-20 12:05:09

相关推荐

mysql的性能瓶颈_Mysql性能优化(一) - 性能检测与瓶颈分析

Mysql性能优化(一) - 性能检测与瓶颈分析

## 概述

MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU饱和一般发生在数据装入内存或从磁盘上读取数据时候。

磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。

## 性能检测命令

### show status

显示状态信息,参考:[Mysql show status命令详解](/view/216.html)

### show processlist

查看当前SQL执行,包括执行状态、是否锁表等,参考:[Mysql show processlist命令详解](/view/215.html)

### show variables

显示系统变量,参考:[Mysql show variables命令详解](/view/218.html)

## 瓶颈分析命令

### 获取mysql用户下的进程总数

```bash

ps -ef #124; awk '{print $1}' #124; grep "mysql" #124; grep -v "grep" #124; wc -l

```

### 主机性能状态

```bash

# uptime

13:05:52 up 53 days, 52 min, 1 user, load average: 0.00, 0.00, 0.00

```

### CPU使用率

```bash

# top 或 # vmstat

```

### 磁盘IO量

```bash

# vmstat 或 # iostat

```

### swap进出量\[内存\]

```bash

# free -m

```

### 数据库性能状态

#### QPS(每秒Query量)

QPS = Questions(or Queries) / seconds

```sql

mysql > show /* global */ status like 'Question';

```

#### TPS(每秒事务量)

TPS = (Com\_commit + Com\_rollback) / seconds

```sql

mysql > show status like 'Com_commit';

mysql > show status like 'Com_rollback';

```

#### key Buffer 命中率

key\_buffer\_read\_hits = (1-key\_reads / key\_read\_requests) * 100%

key\_buffer\_write\_hits = (1-key\_writes / key\_write\_requests) * 100%

```sql

mysql> show status like 'Key%';

```

#### InnoDB Buffer命中率

innodb\_buffer\_read\_hits = (1 - innodb\_buffer\_pool\_reads / innodb\_buffer\_pool\_read\_requests) * 100%

```sql

mysql> show status like 'innodb_buffer_pool_read%';

```

#### Query Cache命中率

Query\_cache\_hits = (Qcahce\_hits / (Qcache\_hits + Qcache_inserts )) * 100%;

```sql

mysql> show status like 'Qcache%';

```

#### Table Cache状态量

```sql

mysql> show status like 'open%';

```

#### Thread Cache 命中率

Thread\_cache\_hits = (1 - Threads_created / connections ) * 100%

```sql

mysql> show status like 'Thread%';

mysql> show status like 'Connections';

```

#### 锁定状态

```sql

mysql> show status like '%lock%';

```

#### 复制延时量

```sql

mysql > show slave status

```

#### Tmp Table 状况(临时表状况)

```sql

mysql > show status like 'Create_tmp%';

```

#### Binlog Cache 使用状况

```sql

mysql > show status like 'Binlog_cache%';

```

#### Innodb\_log\_waits 量

```sql

mysql > show status like 'innodb_log_waits';

```

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。