Mysql 語句性能優(yōu)化

主要從一下兩點去優(yōu)化

  1. explain mysql(mysql語句解釋)
  2. slow query log(慢查詢?nèi)罩荆?/li>

explain mysql

結(jié)果集中重要性比較高的幾個關(guān)鍵字
1.select_type
select類型赶熟,它有以下幾種值
1.1simple 它表示簡單的select,沒有union和子查詢
1.2 primary 最外面的select,在有子查詢的語句中宛畦,最外面的select查詢就是primary,上圖中就是這樣
1.3 union union語句的第二個或者說是后面那一個.現(xiàn)執(zhí)行一條語句心傀,explain select * from uchome_space limit 10 union select * from uchome_space limit 10,10

2.type
連接類型丽涩。有多個參數(shù)蜈七,先從最佳類型到最差類型介紹 重要且困難,最好到最差的連接類型為const藻懒、eq_reg转培、ref唾糯、range诚啃、index和ALL.
2.1 system
表僅有一行淮摔,這是const類型的特列,平時不會出現(xiàn)始赎,這個也可以忽略不計
2.2 const
表最多有一個匹配行噩咪,const用于比較primary key 或者unique索引。因為只匹配一行數(shù)據(jù)极阅,所以很快
記住一定是用到primary key 或者unique胃碾,并且只檢索出兩條數(shù)據(jù)的 情況下才會是const,看下面這條語句
explain SELECT * FROM `asj_admin_log` limit 1,
結(jié)果是


雖然只搜索一條數(shù)據(jù),但是因為沒有用到指定的索引筋搏,所以不會使用const.繼續(xù)看下面這個
explain SELECT * FROM `asj_admin_log` where log_id = 111

log_id是主鍵仆百,所以使用了const。所以說可以理解為const是最優(yōu)化的奔脐。
2.3 eq_ref

對于每個來自于前面的表的行組合俄周,從該表中讀取一行。這可能是最好的聯(lián)接類型髓迎,除了const類型峦朗。它用在一個索引的所有部分被聯(lián)接使用并且索引是UNIQUE或PRIMARY KEY。

2.4 ref
對于每個來自于前面的表的行組合排龄,所有有匹配索引值的行將從這張表中讀取波势。如果聯(lián)接只使用鍵的最左邊的前綴,或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯(lián)接不能基于關(guān)鍵字選擇單個行的話)尺铣,則使用ref拴曲。如果使用的鍵僅僅匹配少量行,該聯(lián)接類型是不錯的凛忿。

2.5 index

該聯(lián)接類型與ALL相同澈灼,除了只有索引樹被掃描。這通常比ALL快店溢,因為索引文件通常比數(shù)據(jù)文件小叁熔。

當(dāng)查詢只使用作為單索引一部分的列時,MySQL可以使用該聯(lián)接類型床牧。

2.6 all
對于每個來自于先前的表的行組合者疤,進行完整的表掃描。如果表是第一個沒標記const的表叠赦,這通常不好驹马,并且通常在它情況下很差。通吵悖可以增加更多的索引而不要使用ALL糯累,使得行能基于前面的表中的常數(shù)值或列值被檢索出。
...

** 3.keys **
MYSQL使用的索引册踩,簡單且重要
** 4.rows **
顯示MYSQL執(zhí)行查詢的行數(shù)泳姐,簡單且重要,數(shù)值越大越不好暂吉,說明沒有用好索引

slow query log (慢查詢?nèi)罩?

slow_query_log :是否開啟慢查詢?nèi)罩荆?表示開啟胖秒,0表示關(guān)閉。
log-slow-queries :舊版(5.6以下版本)MySQL數(shù)據(jù)庫慢查詢?nèi)罩敬鎯β窂侥降摹阎肝?梢圆辉O(shè)置該參數(shù),系統(tǒng)則會默認給一個缺省的文件host_name-slow.log
slow-query-log-file:新版(5.6及以上版本)MySQL數(shù)據(jù)庫慢查詢?nèi)罩敬鎯β窂桨菇帧风题?梢圆辉O(shè)置該參數(shù),系統(tǒng)則會默認給一個缺省的文件host_name-slow.log
long_query_time :慢查詢閾值嫉父,當(dāng)查詢時間多于設(shè)定的閾值時沛硅,記錄日志。
log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢?nèi)罩局校蛇x項)

修改my.cnf文件绕辖,增加或修改參數(shù)slow_query_log 和slow_query_log_file后摇肌,然后重啟MySQL服務(wù)器,如下所示
slow_query_log =1
slow_query_log_file=/tmp/mysql_slow.log

日志分析工具 ** mysqldumpslow **
在生產(chǎn)環(huán)境中仪际,如果要手工分析日志围小,查找昵骤、分析SQL,顯然是個體力活吩抓,MySQL提供了日志分析工具mysqldumpslow。

-t, 是top n的意思赴恨,即為返回前面多少條的數(shù)據(jù)疹娶;
-g, 后邊可以寫一個正則匹配模式,大小寫不敏感的伦连;
比如
得到返回記錄集最多的10個SQL雨饺。
mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log
得到訪問次數(shù)最多的10個SQL
mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log
得到按照時間排序的前10條里面含有左連接的查詢語句。
mysqldumpslow -s t -t 10 -g "left join" /database/mysql/mysql06_slow.log
另外建議在使用這些命令時結(jié)合 | 和more 使用 惑淳,否則有可能出現(xiàn)刷屏的情況额港。
mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市歧焦,隨后出現(xiàn)的幾起案子移斩,更是在濱河造成了極大的恐慌,老刑警劉巖绢馍,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件向瓷,死亡現(xiàn)場離奇詭異,居然都是意外死亡舰涌,警方通過查閱死者的電腦和手機猖任,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓷耙,“玉大人朱躺,你說我怎么就攤上這事「橥矗” “怎么了长搀?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸡典。 經(jīng)常有香客問我盈滴,道長,這世上最難降的妖魔是什么轿钠? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任巢钓,我火速辦了婚禮,結(jié)果婚禮上疗垛,老公的妹妹穿的比我還像新娘症汹。我一直安慰自己,他們只是感情好贷腕,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布背镇。 她就那樣靜靜地躺著咬展,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞒斩。 梳的紋絲不亂的頭發(fā)上破婆,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音胸囱,去河邊找鬼祷舀。 笑死,一個胖子當(dāng)著我的面吹牛烹笔,可吹牛的內(nèi)容都是我干的裳扯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼谤职,長吁一口氣:“原來是場噩夢啊……” “哼饰豺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起允蜈,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤冤吨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饶套,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锅很,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年凤跑,在試婚紗的時候發(fā)現(xiàn)自己被綠了爆安。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡仔引,死狀恐怖扔仓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咖耘,我是刑警寧澤翘簇,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站儿倒,受9級特大地震影響版保,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜夫否,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一彻犁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凰慈,春花似錦汞幢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽输钩。三九已至,卻和暖如春仲智,著一層夾襖步出監(jiān)牢的瞬間买乃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工钓辆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剪验,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓岩馍,卻偏偏與公主長得像碉咆,于是被迫代替她去往敵國和親抖韩。 傳聞我的和親對象是個殘疾皇子蛀恩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容