mysql 分析服务_MySQL分析服务器状态_MySQL
概述
文章簡單介紹了通過一些查詢命令分析當(dāng)前服務(wù)器的狀態(tài)。
目錄
概述
獲取服務(wù)器整體的性能狀態(tài)
SQL操作計數(shù)
總結(jié)
步驟
獲取服務(wù)器整體的性能狀態(tài)
首先對一個數(shù)據(jù)庫服務(wù)器進行性能優(yōu)化需要先知道服務(wù)器當(dāng)前主要的性能問題出現(xiàn)在哪里,在這點sql server也是類似,sql server首先會分析當(dāng)前服務(wù)器的等待類型的情況。
我們可以使用show [session|global] status命令來獲取想要的信息,默認(rèn)是顯示當(dāng)前連接的所有統(tǒng)計參數(shù)值,還可以直接查詢information_schema數(shù)據(jù)庫中的session_status表。
show status;
#或者使用
use information_schema;
select * from SESSION_STATUS;
我當(dāng)前的mysql版本是5.6.21,總共查詢出了341行參數(shù)。
這里有一篇文章詳細分析了每一個參數(shù)值的所代表的意思:http://blog.sina.com.cn/s/blog_68baf43d0100vu2x.html
SQL操作計數(shù)
接下來我們主要分析里面的com_參數(shù),com_參數(shù)各種SQL對數(shù)據(jù)庫執(zhí)行的操作。
show status like 'com_%';
#或者使用
use information_schema;
select * from SESSION_STATUS WHERE variable_name like 'com_%';
各種SQL操作計數(shù)總共有142個,不同的版本結(jié)果不一樣,接下來就來測試一下,表中的alter table的當(dāng)前連接的操作次數(shù)為0,現(xiàn)在我修改一下表看看結(jié)果。
ALTER TABLE test ADD Name CHAR(10) NOT NULL;
show status like 'com_%';
可以看到alter_table計數(shù)增加了1。
com_計數(shù)里面有幾個比較重要的參數(shù),其它的一些參數(shù)也經(jīng)常用來做參考。
com_delete:執(zhí)行delete操作的次數(shù)。
com_select:執(zhí)行select操作的次數(shù)。
com_insert:執(zhí)行insert操作的次數(shù),對應(yīng)批量插入操作無論里面循環(huán)多少次都只算一次。
com_update:執(zhí)行update操作的次數(shù)。
com_commit:執(zhí)行事務(wù)提交的次數(shù)。
com_rollback:執(zhí)行事務(wù)回滾的次數(shù)。
上面的計數(shù)包括所有的存儲引擎,有幾個參數(shù)是單獨針對innodb存儲引擎,記錄了read,inserted,updated,deleted每種操作的行數(shù)。
show status like 'innodb_rows%';
#或者使用
use information_schema;
select * from SESSION_STATUS WHERE variable_name like 'innodb_rows%';
定位效率低的SQL語句
1.可以通過慢查詢?nèi)罩緛矶ㄎ?#xff0c;慢查詢只能查詢已經(jīng)執(zhí)行結(jié)束的語句,如果要查詢當(dāng)前正發(fā)生的問題無法做到,這個方法在后面一篇文章介紹mysql日志會詳細介紹。
由于我將慢查詢的時間設(shè)為0.01秒,所以超過這個值的都會記錄下來,上面的截圖就是慢查詢?nèi)罩纠锩娴囊粭lSQL操作記錄,記錄中記錄了在什么時候執(zhí)行的操作,執(zhí)行操作的用戶信息,執(zhí)行花了0.19秒,鎖花了0.001秒,返回了0行,查詢了1行。
2.使用show processlist命令查詢當(dāng)前進行線程,該命令經(jīng)常用來分析當(dāng)前服務(wù)器的狀況。
上圖中有后四個字段需要理解,其中
command:記錄了當(dāng)前查詢的一個狀態(tài),休眠(sleep),查詢(query),連接(connect)。
Time:持續(xù)的時間,單位是秒,經(jīng)常會使用這個值來做分析操作。
state:當(dāng)前語句的狀態(tài),這個狀態(tài)值很重要,這個狀態(tài)值很多,大家可以去了解一下,上圖就是等待表解鎖。
info:記錄操作語句
3.借助第三方監(jiān)控工具
總結(jié)
文章的知識點涉及的內(nèi)容其實很多,這里只是簡單的寫了一下,包括服務(wù)器里的很多狀態(tài)都是很重要的,文章只是單單拿出了SQL操作的計數(shù)來講,其它的一些包括connections,slow_queries,innodb_data_,innodb_buffer_pool_等等都是非常有用的一些計數(shù),由于太多這里就沒有全部拿出來分析,文章中也給出了一個連接介紹了其它的一些計數(shù)的含義。
本條技術(shù)文章來源于互聯(lián)網(wǎng),如果無意侵犯您的權(quán)益請點擊此處反饋版權(quán)投訴
本文系統(tǒng)來源:php中文網(wǎng)
TAG標(biāo)簽:狀態(tài)服務(wù)器
總結(jié)
以上是生活随笔為你收集整理的mysql 分析服务_MySQL分析服务器状态_MySQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java类spring加载_spring
- 下一篇: c语言程序设计课程设计心得体会,C语言程