Mysql 性能剖析

Jmeter + prometheus + Grafana + Mysql_exporter 進行監(jiān)控。 提示:只是自己學習筆記,自己做記錄用,讀者應該看不懂。請見諒

學習目標

  • 學會對Mysql數(shù)據(jù)庫的my.cnf文件進行配置
  • 學會使用grafana監(jiān)控服務器的數(shù)據(jù)庫,監(jiān)控服務器可能出現(xiàn)的性能瓶頸
  • 當遇到性能瓶頸時,學會進行調優(yōu)操作

數(shù)據(jù)庫關鍵指標:

  • TPS 美妙事務數(shù)
  • QPS 每秒查詢量
  • 連接數(shù)
  • 查詢吞吐量
  • 查詢執(zhí)行能力
  • 查詢緩存

登錄數(shù)據(jù)庫,輸入sql

show global status like 'questions';  #數(shù)據(jù)庫的總計查詢數(shù)
show global status like 'uptime';  #數(shù)據(jù)庫的總計運行時間
每秒事務數(shù)=數(shù)據(jù)庫的總計查詢數(shù) ÷ 數(shù)據(jù)庫的總計運行時間

my.cnf文件配置

cd /etc,打開my.cnf 如果沒有這個文件,就新建一個
log_output=table  #設置日志的輸出方式,一種是table,另一種是file
slow_query_log=1  #是否打開慢查詢日志,設置1表示打開,0表示關閉
#慢查詢,指查詢速度比較慢的語句,當數(shù)據(jù)庫發(fā)現(xiàn)有語句執(zhí)行速度比較慢時,就會將其記錄到日志中
#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  #最大連接數(shù)
datadir=/var/lib/mysql  #數(shù)據(jù)文件的存放目錄,一般不要改
socket=/var/lib/mysql/mysql.sock  #使用socket時,套接字文件的位置,一般不要改

如果對配置文件進行了修改,需要重啟一下mysql

service mysqld restart
system start mysqld

數(shù)據(jù)庫調優(yōu)

#慢查詢語句舉例,這個不是項目中的語句,只是舉例
select * from sq_orderform;  #這個語句沒有where條件,在數(shù)據(jù)量較大時,非常容易出現(xiàn)慢查詢

#刪除訂單表SQ_ORDERFROM中的某個外鍵與索引,此時再查詢訂單,就有可能出現(xiàn)慢查詢
ALTER TABLE sq_orderform DROP FOREIGN KEY FK9BD986FB1E208F02;  #刪除外鍵
ALTER TABLE sq_orderform DROP INDEX FK9BD986FB1E208F02;  #刪除索引

#當GRAFANA監(jiān)控到了慢查詢語句時,可以在navicat中執(zhí)行以下語句
select * from mysql.slow_log order by start_time desc;
#按時間倒序顯示最近的慢查詢語句
#mysql.slow_log 慢查詢日志表,如果出現(xiàn)了慢查詢,mysql會將出現(xiàn)慢查詢的語句寫入這個表中
#慢查詢語句,記錄在sql_text列

#在工作中,將慢查詢的SQL語句發(fā)給開發(fā)處理
#開發(fā)調查問題后,發(fā)現(xiàn)沒有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
執(zhí)行效率CONST > EQ_REF > REF > RANGE > INDEX > ALL

CONST 查詢索引字段,且表中只有一行數(shù)據(jù)
EQ_REF 主鍵或者唯一索引
REF 非唯一索引
RANGE 索引的范圍查詢
INDEX 索引
ALL 全表掃描

image.png

遠程連接數(shù)據(jù)庫時的注意點

#Mysql數(shù)據(jù)庫初始設置下,是不可以遠程訪問的,需要update一個表
#都市商城服務器的Mysql不需要設置
mysql -u root -p
輸入sq  #登錄到數(shù)據(jù)庫
use mysql  #進入mysql庫
update user set host='%' where user='root';  #允許遠程訪問數(shù)據(jù)庫
flush privieleges;  #讓更改立刻生效
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,743評論 2 370

推薦閱讀更多精彩內容