日誌系統 一條SQL更新語句是如何執行的

2021-09-12 01:14:20 字數 491 閱讀 3172

一 重要的日誌模組:redo log

wal技術:先寫日誌,再寫磁碟。具體是當有一條紀錄需要更新的時候,innodb引擎就會先把紀錄寫到redo log裡面,並更新記憶體,在引擎空閒的時候,將這個操作紀錄更新到磁碟裡面。

1  redo log紀錄了這個資料頁做了什麼改動

2 redo log 是固定大小的,從頭開始寫,寫到末尾就由回到開頭迴圈寫。

write pos 是當前紀錄的位置,一邊寫一邊後移,checkpoint就是要擦除的位置,中間的是空著的部分。

二 重要的日誌模組:binlog

1 是mysql server層實現的

2 是邏輯日誌

3 追加寫入的

一條SQL更新語句是如何執行的

mysql create table t id int primary key,c int 如果要將id 2這一行的值加1,sql語句就會這麼寫 mysql update t set c c 1where id 2 執行語句前要先連線資料庫,這是聯結器的工作。在乙個表上有更新的時候,跟這個表有關的查...

一條SQL更新語句的執行過程

目錄如果執行這條更新語句資料庫是如何執行的呢?update student set name 小明 where studentid 1根據之前說過的sql語句查詢的流程來說,只要表上有資料更新,有關查詢的索引就會失效,接下來分析器會根據每個單詞識別知道這是update語句,優化器根據這個id獲取需要...

MySQL學習筆記(二)一條SQL更新語句

從乙個表的一條更新語句說起,下面是這個表的建立語句,這個表有乙個主鍵id和乙個整型欄位c mysql create table t id int primary key,c int 假如將id 2這一行的值加1 執行語句要先通過聯結器連線資料庫。在乙個表上更新的時候,跟這個表有關的查詢快取會失效。接...