mysql性能调优(二)——查询mysql进程状态

除了可以查看数据库状态,还可以观察mysql进程状态

用show processlist 或者开启慢查询,获取有问题的sql(而用profiling以及explain分析sql语句我们暂时以后再说)

mysql -uroot -e 'show processlist' 看数据库状态

新建一个sh去执行查看mysql的进程状态  tjproce.sh

#!/bin/bash

while true

do

mysql -uroot -e 'show processlist \G' | grep state | uniq | sort -rn >> proce.txt

usleep 100000  -->一秒运行10次

done 

proce.txt的结果可能如下(即mysql运行时的部分可疑状态):

State : Sending data

State : Null

State : Coping to tmp table 复制到临时表

State : sorting result   排序(磁盘排序更慢)

State : converting heap to MYISAM   查询结果太大

State : create tmp tab 创建临时表(索引利用不合理)

看一条语句运行的具体情况:show profiles

为sql语句生成一条执行计划:show profile for query 2 / show profiling=on

下面再补充个知识点:

数据库的三范式:

1:列不可再分

2:行可以唯一区分 即主键约束

3:表的非主属性不能依赖于其他表的非主属性 即外键约束
1 2 3 范式层层递进,一级一级依赖的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值