MYSQL的執行過程和日誌介紹

2021-09-26 18:24:05 字數 1126 閱讀 7050

sql的執行過程

第一步:客戶端或者系統通過sql connection連線上mysql資料庫的聯結器,聯結器獲取許可權,維持管理連線;

第二步:當你往mysql資料庫傳送一條sql,這個時候查詢快取開始工作,看看之前有沒有執行過這個sql,如果有則直接返回快取資料到客戶端,只有對錶執行過更新操作快取都會失效,因此一些很少跟新的資料表可以考慮使用資料庫快取,對頻繁跟新的表使用快取反而弊大於利。使用快取的方法如下sql:

select sql_cache * from user

第三步:當未命中快取的時候,分析器開始工作;分析器判斷你是select還是update還是insert,分析你的語法是否正確。

第四步:優化器根據你的表的索引和sql語句決定使用那個索引,決定join的順序。

第五步:執行器執行sql,呼叫儲存引擎的介面,掃瞄遍歷表或者插入跟新資料。

mysql的日誌

mysql的日誌介紹:mysql有兩個重要的日誌–redolog和binlog,redolog是獨屬於innodb的日誌,binlog則是屬於server層的日誌。當我們跟新資料庫的資料的時候,這兩個日誌檔案也會被跟新,記錄資料庫的跟新操作。

redolog有稱作重做日誌,用於記錄實務操作的變化,記錄的是資料修改之後的值,不管事務是否提交都會記錄下來。它在資料庫重啟恢復的時候被使用,innodb利用這個日誌恢復到資料庫宕機前的狀態,一次來保證資料的完整性。redolog是物理日誌,記錄的是某個表的資料做了那些修改,redolog是固定的大小的,也就是說後面的日誌會覆蓋前面的日誌。

binlog有稱作歸檔日誌,他記錄了對mysql的資料庫執行更該的所有操作,但是不包括select和show這類操作。binlog是邏輯日誌,記錄的是某個表執行了那些操作。binlog是追加形式的寫入日誌,後面的日誌不會被前面的日誌覆蓋。

資料跟新過程

讀取對應的資料到記憶體—>更新資料—>寫redolog日誌—>redolog狀態為prepare—>寫binlog日誌—>提交事務—>redolog狀態為commit,資料正式寫入日誌檔案。redolog的提交方式為「兩階段式提交」,這樣的目的是為了資料恢復的時候確保資料恢復的準確性,因為資料恢復是通過備份的binlog來完成的,所以要確保redolog和要binlog一致。

MYSQL執行過程

一條查詢語句執行過程 1.先確定 鏈結方式 分為 同步 和 非同步 一般是同步 2.鏈結方式 分為 長鏈結 和 短鏈結 長鏈結是操作後不會馬上關掉會保持一段時間 短鏈結操作後會馬上關掉。長連線mysql會保持28800秒 8小時 這個時間可以改 mysql 預設最大鏈結數量151個 修改最大鏈結數量...

mysql 執行過程 MySQL的執行流程分析

mysql的執行流程 那麼,要知道我們平時常說的優化sql到底是在優化些什麼,就必須弄懂mysql的執行流程。而這個專題將系統化的由淺到深講解mysql一些高階用法。打算先講很多人關注的使用方式 增刪改查以及其優化 然後就講資料庫和表的操作 很多我們學習忽略的地方 接著就是引擎還有更高階的查詢等等。...

MySQL日誌體系介紹

mysql提供了幾種日誌功能,如下 日誌型別 作用error log 記錄mysqld在啟動 關閉 執行時出現的錯誤 告警等 general query log 記錄mysql執行的所有sql binary log 資料庫變更記錄,類似乙個賬本,記著流水賬 relay log 只在從庫存在,內容就是...