- 系 統(tǒng)
- 進(jìn)階教程
- 微軟認(rèn)證
- Win7/WinX
- 優(yōu)化
- 系統(tǒng)故障
- Windows NT
- 社區(qū)
內(nèi)容簡介SQL查詢和更新語句的執(zhí)行過程,Mysql如何實(shí)現(xiàn)數(shù)據(jù)恢復(fù)。
腦圖Mysql 執(zhí)行過程
Mysql 更新數(shù)據(jù)
筆記Mysql執(zhí)行過程連接器權(quán)限管理 用戶名和密碼的校驗(yàn) 連接管理
查詢緩存連接器之后會(huì)先去查詢緩存,如果命中緩存則直接返回結(jié)果(返回之前會(huì)有操作權(quán)限校驗(yàn))緩存的存在可以提高查詢語句的執(zhí)行效率。 但由于 數(shù)據(jù)更新的時(shí)候會(huì)導(dǎo)致清空緩存,對(duì)于更新比較頻繁的數(shù)據(jù),查詢緩存的命中率太低。 分析器詞法分析 識(shí)別關(guān)鍵詞"select" 確定列 判斷表是否存在,列是否存在。 語法分析 SQL語法判斷
優(yōu)化器索引的選擇 執(zhí)行器1:權(quán)限校驗(yàn)
2:調(diào)用引擎接口查詢符合條件的結(jié)果
Mysql更新語句InnoDB 引擎就會(huì)先把記錄寫到 redo log里面,并更新內(nèi)存。等適當(dāng)?shù)臅r(shí)候 寫入磁盤
redo log(重做日志)和 binlog(歸檔日志) WAL 技術(shù),WAL 的全稱是 Write-Ahead Logging。 數(shù)據(jù)庫處理更新操作的時(shí)候,先記日志(redo log)再在空閑的時(shí)候?qū)⒉僮鲗懭氪疟P。
redolog 重做日志
writePos 是記錄的位置,checkPoint是 擦除的位置。 writePos 和 checkPoint之間的空間就是 剩余的 redoLog可記錄的空間。 當(dāng)writePos 追上 checkPoint的時(shí)候意味著 redolog滿了,需要擦除一些,擦除之前 需要對(duì)數(shù)據(jù)進(jìn)行更新,并將checkPoint 后移。
因?yàn)閞edLog的存在所以 數(shù)據(jù)庫哪怕crash掉 也可以保留期間的更新記錄。crash-safe
binlog 歸檔日志
更新操作的執(zhí)行過程
redolog 和 binlog雖然是兩個(gè)獨(dú)立的處理邏輯,但是也需要 “兩階段提交” 保證 要失敗就一起失敗,要成功就一起成功。這樣做的原因是為了 保證 日志的一致性。
|