redo/undo log、binlog
redolog與undolog是innodb里的事務(wù)日志。
redolog一般是物理日志,提供前滾操作,記錄的是數(shù)據(jù)頁(yè)的物理修改。
undolog一般是邏輯日志,提供回滾操作,用來(lái)回滾行記錄到某一版本。
兩種日志一般結(jié)合使用。
層次不同。redo/undo 是 innodb 引擎層維護(hù)的,而 binlog 是 mysql server 層維護(hù)的,跟采用何種引擎沒(méi)有關(guān)系,記錄的是所有引擎的更新操作的日志記錄。
mySql執(zhí)行過(guò)程

執(zhí)行過(guò)程.png
- 連接器:管理連接,權(quán)限驗(yàn)證
- 分析器:詞法分析,語(yǔ)法分析
- 優(yōu)化器:執(zhí)行計(jì)劃生成,索引選擇
- 執(zhí)行器:操作存儲(chǔ)引擎,返回結(jié)果
一條sql語(yǔ)句執(zhí)行的很慢是什么情況?
大多數(shù)情況下正常,只是偶爾出現(xiàn)很慢的情況
- 當(dāng)在更新數(shù)據(jù)庫(kù)中的字段時(shí),會(huì)將內(nèi)存中的數(shù)據(jù)進(jìn)行修改,但并不會(huì)立即持久化到硬盤(pán)中,而是先寫(xiě)入到redolog日志中。如果在更新操作十分頻繁的時(shí)候,redolog容量有限會(huì)很快被寫(xiě)滿導(dǎo)致速度變慢。