優(yōu)化數(shù)據(jù)訪問(wèn)
- 是否向數(shù)據(jù)庫(kù)請(qǐng)求了不需要的數(shù)據(jù)
- MySQL是否在掃描額外的記錄
MySQL使用三種方式應(yīng)用WHERE條件
- 索引中使用WHERE 在存儲(chǔ)引擎層完成
- 使用索引覆蓋掃描 在服務(wù)器層完成
- 從數(shù)據(jù)表中返回?cái)?shù)據(jù),過(guò)濾不滿足條件的記錄
重構(gòu)查詢的方式
- 一個(gè)復(fù)雜查詢還是多個(gè)簡(jiǎn)單查詢
- 切分查詢
- 分解關(guān)聯(lián)查詢
查詢執(zhí)行

1.客戶端發(fā)送一條查詢給服務(wù)器;
2.服務(wù)器先檢查查詢緩存,命中緩存則返回存儲(chǔ)在緩存的結(jié)果;否則進(jìn)入下一階段
3.服務(wù)器端進(jìn)行SQL解析、預(yù)處理,再由優(yōu)化器生成對(duì)應(yīng)的執(zhí)行計(jì)劃
4.MySQL根據(jù)優(yōu)化器生成的執(zhí)行計(jì)劃,調(diào)用存儲(chǔ)引擎API執(zhí)行查詢
5.結(jié)果返回給客戶端