MYSQL性能排查

本文摘自https://www.cnblogs.com/goodtest2018/p/9167089.html

#0.MySQL数据库连接

mysql -u### -p### 

##1.查询表的所属以及有多少行 SELECTTABLE_SCHEMA,TABLE_NAME,TABLE_ROWSFROMinformation_schema.`TABLES`WHERETABLE_NAME='PRODUCT';

##2.查看当前应用连接,连接数突增排查SELECTuser,SUBSTRING_INDEX(HOST,':',1)asip,count(*)ascount, db FROM information_schema.`PROCESSLIST`WHERE`HOST`NOTIN('localhost')AND`USER`NOTIN('replicater')GROUPBYipORDERBYcount;

##3.查看表碎片,是否需要整理表释放物理空间SELECTTABLE_NAME,TABLE_ROWS ,concat(ROUND(DATA_LENGTH/1024/1024,2),'MB')ASsize, DATA_FREE/1024/1024AS DATA_FREE_MBFROM information_schema.`TABLES`WHERETABLE_SCHEMA='db库名'ORDERBYDATA_LENGTHDESC;

##4.当前有没有锁SELECT*FROM information_schema.INNODB_LOCKS;

##5.当前锁堵塞情况SELECT*FROM information_schema.INNODB_LOCK_WAITS;

##6.当前锁等待详细信息selectit.trx_mysql_thread_id, il.lock_id, il.lock_table, il.lock_mode, il.lock_type, it.trx_state, pl.USER||'@'||pl.HOSTasuser_host, pl.db, pl.command, pl.info, it.trx_started, it.trx_wait_started, now()-trx_wait_startedas wait_seconds, il.lock_index, it.trx_weight, it.trx_rows_locked, it.trx_rows_modified from information_schema.INNODB_TRX it,information_schema.innodb_locks il,information_schema.processlist pl whereit.trx_id=il.lock_trx_idandit.trx_mysql_thread_id= pl.id;

##7.最近一次死锁、未提交事物、CHECKPIONT、BUFFER POOL等

show engine innodb status;

##8.过滤无用线程信息可用pager

show processlist;

##9.查看当前运行的详细SQLSELECT*FROMINFORMATION_SCHEMA.PROCESSLISTWHEREinfoisnotnull;

##10.查看某条sql各阶段执行时间,可开启profiling功能setglobal profiling=on;

##11.查看用户信息selectuser,host,passwordfrommysql.usergroupbyuser;

##12.分表时批量生成sql语句selectconcat("selectIPas",TABLE_NAME,"from",TABLE_SCHEMA,".",TABLE_NAME,"groupby id;") from information_schema.TABLES whereTABLE_NAMElike'table_%';

##13.查看哪些sql执行最多SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM performance_schema.events_statements_summary_by_digest whereSCHEMA_NAMEisnotnullandSCHEMA_NAME!='information_schema'ORDERBYCOUNT_STARdescLIMIT1;

##14.哪个SQL平均响应时间最多SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM performance_schema.events_statements_summary_by_digest whereSCHEMA_NAMEisnotnullandSCHEMA_NAME!='information_schema'ORDERBYAVG_TIMER_WAITdescLIMIT1;

##15.哪个SQL扫描的行数最多(IO消耗)SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,AVG_TIMER_WAIT,SUM_ROWS_SENT,SUM_ROWS_EXAMINED,FIRST_SEEN,LAST_SEEN FROM performance_schema.events_statements_summary_by_digest whereSCHEMA_NAMEisnotnullandSCHEMA_NAME!='information_schema'ORDERBYSUM_ROWS_EXAMINEDdescLIMIT1;

##16.哪个SQL使用的临时表最多SELECT SCHEMA_NAME,DIGEST_TEXT,SUM_CREATED_TMP_DISK_TABLES,SUM_CREATED_TMP_TABLES,FIRST_SEEN,LAST_SEEN FROM performance_schema.events_statements_summary_by_digest whereSCHEMA_NAMEisnotnullandSCHEMA_NAME!='information_schema'ORDERBYSUM_CREATED_TMP_DISK_TABLESdescLIMIT1;

##17.哪个SQL返回的结果集最多(net消耗)SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,SUM_ROWS_SENT,SUM_ROWS_SENT,FIRST_SEEN,LAST_SEEN FROM performance_schema.events_statements_summary_by_digest whereSCHEMA_NAMEisnotnullandSCHEMA_NAME!='information_schema'ORDERBYSUM_ROWS_SENTdescLIMIT1;

##18.哪个SQL排序数最多(CPU消耗)SELECT SCHEMA_NAME,DIGEST_TEXT,COUNT_STAR,SUM_ROWS_SENT,SUM_SORT_ROWS,FIRST_SEEN,LAST_SEEN FROM performance_schema.events_statements_summary_by_digest whereSCHEMA_NAMEisnotnullandSCHEMA_NAME!='information_schema'ORDERBYSUM_SORT_ROWSdescLIMIT5;

#19.哪个表、文件逻辑IO最多(热数据)SELECTFILE_NAME,EVENT_NAME,COUNT_READ,SUM_NUMBER_OF_BYTES_READ,COUNT_WRITE,SUM_NUMBER_OF_BYTES_WRITE FROM performance_schema.file_summary_by_instance ORDERBYSUM_NUMBER_OF_BYTES_READ+SUM_NUMBER_OF_BYTES_WRITEDESCLIMIT2;

##20.哪个索引使用最多SELECTOBJECT_NAME, INDEX_NAME, COUNT_FETCH, COUNT_INSERT, COUNT_UPDATE, COUNT_DELETE FROM performance_schema.table_io_waits_summary_by_index_usage ORDERBYSUM_TIMER_WAITDESClimit1;

##21.哪个索引没有使用过SELECTOBJECT_SCHEMA,OBJECT_NAME, INDEX_NAME FROM performance_schema.table_io_waits_summary_by_index_usage WHEREINDEX_NAMEISNOTNULLANDCOUNT_STAR=0ANDOBJECT_SCHEMA<>'mysql'ORDERBYOBJECT_SCHEMA,OBJECT_NAME;

##22.哪个等待事件消耗的时间最多SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT, AVG_TIMER_WAIT FROM events_waits_summary_global_by_event_name WHEREevent_name!='idle'ORDERBYSUM_TIMER_WAITDESCLIMIT1;

##23.通过performance_schema库得到数据库运行的统计信息,更好分析定位问题和完善监控信息

#打开标准的innodb监控:CREATETABLEinnodb_monitor (aINT) ENGINE=INNODB;

#打开innodb的锁监控:CREATETABLEinnodb_lock_monitor (aINT) ENGINE=INNODB;

#打开innodb表空间监控:CREATETABLEinnodb_tablespace_monitor (aINT) ENGINE=INNODB;

#打开innodb表监控:CREATETABLEinnodb_table_monitor (aINT) ENGINE=INNODB;

##24.添加主键altertablexxxaddconstraintprimarykey(id);

##25.删除外键altertabletestdropforeignkey FK_XXX;

##26.QPS

SHOW GLOBAL STATUS LIKE'Questions';

SHOW GLOBAL STATUS LIKE'Uptime';

#@27.TPS

SHOW GLOBAL STATUS LIKE'Com_commit';

SHOW GLOBAL STATUS LIKE'Com_rollback';

SHOW GLOBAL STATUS LIKE'Uptime';

(Com_commit +Com_rollback)/Uptime

##28.selecttable_name,table_rows,concat(round(DATA_LENGTH/1024/1024,2),'MB')assize,DATA_FREE/1024/1024AS data_free_MB from information_schema.TABLES wheretable_schema='库名'orderbyDATA_LENGTHdesc;

##29.清理binlog

PURGE BINARYLOGSTO'XXX';

PURGE BINARYLOGS BEFORE'2018-06-10 00:00:00';

##30.外键隔离级别等信息select@@FOREIGN_KEY_CHECKS;select@@global.tx_isolation,@@tx_isolation;  select@@character_set_database;select@@GLOBAL.sql_mode;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容