基礎(chǔ)優(yōu)化

1: show processlist 命令查看線程情況

2: 啟用MySQL慢查詢記錄分析

3: explain來了解SQL執(zhí)行的狀態(tài)

我們只需要注意一個(gè)最重要的type 的信息很明顯的提現(xiàn)是否用到索引:

type結(jié)果值從好到壞依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
all:全表掃描

index:另一種形式的全表掃描,只不過他的掃描方式是按照索引的順序

range:有范圍的索引掃描,相對于index的全表掃描,他有范圍限制,因此要優(yōu)于index

ref: 查找條件列使用了索引而且不為主鍵和unique。其實(shí),意思就是雖然使用了索引,但該索引列的值并不唯一,有重復(fù)。這樣即使使用索引快速查找到了第一條數(shù)據(jù),仍然不能停止,要進(jìn)行目標(biāo)值附近的小范圍掃描。但它的好處是它并不需要掃全表,因?yàn)樗饕怯行虻?,即便有重?fù)值,也是在一個(gè)非常小的范圍內(nèi)掃描。

const:通常情況下,如果將一個(gè)主鍵放置到where后面作為條件查詢,mysql優(yōu)化器就能把這次查詢優(yōu)化轉(zhuǎn)化為一個(gè)常量。至于如何轉(zhuǎn)化以及何時(shí)轉(zhuǎn)化,這個(gè)取決于優(yōu)化器

一般來說,得保證查詢至少達(dá)到range級別,最好能達(dá)到ref,type出現(xiàn)index和all時(shí),表示走的是全表掃描沒有走索引,效率低下,這時(shí)需要對sql進(jìn)行調(diào)優(yōu)。

當(dāng)extra出現(xiàn)Using filesor或Using temproary時(shí),表示無法使用索引,必須盡快做優(yōu)化。

possible_keys:sql所用到的索引

key:顯示MySQL實(shí)際決定使用的鍵(索引)。如果沒有選擇索引,鍵是NULL

rows: 顯示MySQL認(rèn)為它執(zhí)行查詢時(shí)必須檢查的行數(shù)。

4: show profiles執(zhí)行的資源消耗情況

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容