mysql性能调优(一)——查询数据库状态

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/babyyaoyao/article/details/83065029

所谓性能调优,首先要发现问题,才能知道怎么进行性能调优噻,所以我们先从发现问题开始

1、show status  查询数据库状态

     其中监控服务器状态比较重要的几个参数是:

Queries 进行多少次查询
Threads_connected 进程
Threads_running 线程查询

2、其次,我们应学会使用  awk 文本处理工具

例如,Linux下存在有score.txt文本如下

name    age    gold

ricy      50      12

Lct       23      23

LCX     18      89

用awk命令去查询的话

awk '{printf("%s\n",$0)}'                                                                           语句一

查询出来的结果是

ricy      50      12                                                                                      查询语句一结果

Lct       23      23

LCX     18      89

awk '{printf("%s\n",$1)}'                                                                           语句二

ricy      50      12                                                                                     查询语句二结果

awk '{printf("%s\n",$2)}'                                                                           语句三

Lct       23      23                                                                                     查询语句三结果

(规律可想而知)awk '{printf("%s\n",$3)}'的查询结果便是:     LCX     18      89

awk '/L/{printf("%s\n",$0)}'                                                                           语句四(以L开头的)

Lct       23      23

LCX     18      89

由此:可以用awk表达式去监控服务器状态

mysqladmin -uroot ext | awk '/Queries/{printf("%d",$4)}'/Threads_connected/{printf("%d",$4)}'/Threads_running/{printf("%d",$4)}'

mysqladmin -uroot ext|awk '/Queries/{q=$4}'/Threads_connected/{c=$4}'/Threads_running/{r=$4}END{printf("%d %d   %d\n", q, c, r)}'

O(∩_∩)O哈哈~ 调用当然要先找问题了噻!上面中这样就可以监控服务器状态咯!

可以偷懒的是!在服务器中,你可以自己写一个命令 tjsStatus.sh 去统计监控服务器状态,并启动

# !/bin/bash

while true

do

mysqladmin -uroot ext|awk '/Queries/{q=$4}'/Threads_connected/{c=$4}'/Threads_running/{r=$4}END{printf("%d %d   %d\n", q, c, r)}' >> status.txt

sleep 1

done

下面再补充几个知识点:

1、在mysql中建表中,有varchar和char的区别,加入用char(20)来存储‘abc’的话,其存储的字符将占20个字节,但有17个是空的;但是用varchar的话就只会有3个,20只是它的最大值

2、查询的时候union all的效率肯定比union快,因为前面的只是将结果集合并,所以会有重复的数据

猜你喜欢

转载自blog.csdn.net/babyyaoyao/article/details/83065029