Mysql 性能剖析

Jmeter + prometheus + Grafana + Mysql_exporter 进行监控。 提示:只是自己学习笔记,自己做记录用,读者应该看不懂。请见谅

学习目标

  • 学会对Mysql数据库的my.cnf文件进行配置
  • 学会使用grafana监控服务器的数据库,监控服务器可能出现的性能瓶颈
  • 当遇到性能瓶颈时,学会进行调优操作

数据库关键指标:

  • TPS 美妙事务数
  • QPS 每秒查询量
  • 连接数
  • 查询吞吐量
  • 查询执行能力
  • 查询缓存

登录数据库,输入sql

show global status like 'questions';  #数据库的总计查询数
show global status like 'uptime';  #数据库的总计运行时间
每秒事务数=数据库的总计查询数 ÷ 数据库的总计运行时间

my.cnf文件配置

cd /etc,打开my.cnf 如果没有这个文件,就新建一个
log_output=table  #设置日志的输出方式,一种是table,另一种是file
slow_query_log=1  #是否打开慢查询日志,设置1表示打开,0表示关闭
#慢查询,指查询速度比较慢的语句,当数据库发现有语句执行速度比较慢时,就会将其记录到日志中
#slow_query_log_file=/var/log/slow_log   #如果上一行选择输出到file中,那么这一行填写文件的路径
long_query_time=1  #设置慢查询的阈值,一般设置为1-10秒
log_queries_not_using_indexes=0  #是否记录未使用索引的情况,1表示打开,0表示关闭
#索引,INDEX,一张表中如果有索引,可以加快检索速度
max_connections=512  #最大连接数
datadir=/var/lib/mysql  #数据文件的存放目录,一般不要改
socket=/var/lib/mysql/mysql.sock  #使用socket时,套接字文件的位置,一般不要改

如果对配置文件进行了修改,需要重启一下mysql

service mysqld restart
system start mysqld

数据库调优

#慢查询语句举例,这个不是项目中的语句,只是举例
select * from sq_orderform;  #这个语句没有where条件,在数据量较大时,非常容易出现慢查询

#删除订单表SQ_ORDERFROM中的某个外键与索引,此时再查询订单,就有可能出现慢查询
ALTER TABLE sq_orderform DROP FOREIGN KEY FK9BD986FB1E208F02;  #删除外键
ALTER TABLE sq_orderform DROP INDEX FK9BD986FB1E208F02;  #删除索引

#当GRAFANA监控到了慢查询语句时,可以在navicat中执行以下语句
select * from mysql.slow_log order by start_time desc;
#按时间倒序显示最近的慢查询语句
#mysql.slow_log 慢查询日志表,如果出现了慢查询,mysql会将出现慢查询的语句写入这个表中
#慢查询语句,记录在sql_text列

#在工作中,将慢查询的SQL语句发给开发处理
#开发调查问题后,发现没有user_id的索引,那么可以添加一下
ALTER TABLE SQ_ORDERFORM ADD CONSTRAINT FK9BD986FB1E208F02 FOREIGN KEY(USER_ID)
REFERENCES SQ_USER(ID) ON DELETE RESTRICT ON UPDATE RESTRICT;

在navicat中,拿到一个慢查询语句,可以尝试进行分析,选中语句,点击"解释已选择的",在下方的解释1里,找到type的值CONST,EQ_REF,REF,RANGE,INDEX,ALL
执行效率CONST > EQ_REF > REF > RANGE > INDEX > ALL

CONST 查询索引字段,且表中只有一行数据
EQ_REF 主键或者唯一索引
REF 非唯一索引
RANGE 索引的范围查询
INDEX 索引
ALL 全表扫描

image.png

远程连接数据库时的注意点

#Mysql数据库初始设置下,是不可以远程访问的,需要update一个表
#都市商城服务器的Mysql不需要设置
mysql -u root -p
输入sq  #登录到数据库
use mysql  #进入mysql库
update user set host='%' where user='root';  #允许远程访问数据库
flush privieleges;  #让更改立刻生效
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 227,428评论 6 531
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,024评论 3 413
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 175,285评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,548评论 1 307
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,328评论 6 404
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,878评论 1 321
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,971评论 3 439
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,098评论 0 286
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,616评论 1 331
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,554评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,725评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,243评论 5 355
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,971评论 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,361评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,613评论 1 280
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,339评论 3 390
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,695评论 2 370

推荐阅读更多精彩内容