查詢優(yōu)化之EXPLAIN的使用分析
不同的SQL語句寫法,往往會帶來很大的性能差異,我們怎么才能知道執(zhí)行SQL查詢開銷呢?MySQL為我們提供了EXPLAIN關(guān)鍵詞,在你的select語句前加上EXPLAIN關(guān)鍵詞,MySQL將解釋它是如何處理的SELECT查詢,提供有關(guān)表如何聯(lián)接和聯(lián)接的次序,所掃描的記錄數(shù)等相關(guān)信息,你可以憑借這些信息,來優(yōu)化你的SQL查詢。
EXPLAIN select id, username from userinfo where username like '%peng%';
我們在查詢語句前加上了EXPLAIN關(guān)鍵詞,那么我們可以得到如下的報告。
id: 1
select_type: SIMPLE
table: userinfo
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
rel: NULL
rows: 6
Extra: Using where
大概解釋下每一個數(shù)據(jù)項的含義:
id: SELECT識別符,SELECT的查詢序列號;
select_type: SELECT類型,可以是SIMPLE(簡單查詢)、PRIMARY(最外面的select)等;
table:用到的表
type: 聯(lián)接類型
possible_keys: 可用索引列
key: 實際用到的索引列
key_len: 鍵長度
rel: 使用哪個列或常數(shù)與key一起從表中選擇行
rows: 檢查的行數(shù)
Extra: 該列包含MySQL解決查詢的詳細信息
更具體的解釋請查閱MySQL手冊,在這里,把手冊的內(nèi)容再抄一遍并沒有什么意義,當(dāng)你有了這些參考數(shù)據(jù)后,就能更準確的完成MySQL查詢優(yōu)化了。
相關(guān)文章
如何設(shè)置才能遠程登錄Mysql數(shù)據(jù)庫
本地機器安裝的數(shù)據(jù)庫,本地程序可以訪問,但是同事的機器卻無法連接訪問,發(fā)現(xiàn)是mysql數(shù)據(jù)庫沒有開啟遠程訪問。那么我們需要如何設(shè)置呢,這就是本文探討的內(nèi)容了2014-08-08如何用mysql自帶的定時器定時執(zhí)行sql(每天0點執(zhí)行與間隔分/時執(zhí)行)
在開發(fā)過程中經(jīng)常會遇到這樣一個問題,每天或者每月必須定時去執(zhí)行一條sql語句或更新或刪除或執(zhí)行特定的sql語句,下面這篇文章主要給大家介紹了關(guān)于如何用mysql自帶的定時器定時執(zhí)行sql(每天0點執(zhí)行與間隔分/時執(zhí)行)的相關(guān)資料,需要的朋友可以參考下2023-03-03騰訊面試:一條SQL語句執(zhí)行得很慢的原因有哪些?---不看后悔系列(推薦)
這篇文章主要介紹了SQL語句執(zhí)行慢的原因,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04解決Mysql建表時報錯invalid?ON?UPDATE?clause?for?'create_d
這篇文章主要介紹了解決Mysql建表時報錯invalid?ON?UPDATE?clause?for?'create_date'?column問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12