MySQL 核心模塊揭秘 | 03 期 | 我是一個事務,請給我一個對象
每個事務都有一個對象,這篇文章我們聊聊,事務的對象從哪裏來,要到哪裏去。 作者:操盛春,愛可生技術專家,公眾號『一樹一溪』作者,專注於研究 MySQL 和 OceanBase 源碼。 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 我是一個事務,請給我一個對象 本文基於 MySQL 8.0.32 源碼,存儲引擎為 InnoDB。 目錄 [TOC] 正文
昵称 愛可生開源社區
每個事務都有一個對象,這篇文章我們聊聊,事務的對象從哪裏來,要到哪裏去。 作者:操盛春,愛可生技術專家,公眾號『一樹一溪』作者,專注於研究 MySQL 和 OceanBase 源碼。 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 我是一個事務,請給我一個對象 本文基於 MySQL 8.0.32 源碼,存儲引擎為 InnoDB。 目錄 [TOC] 正文
昵称 愛可生開源社區
做了那麼多準備工作,終於要啓動 InnoDB 事務了。 作者:操盛春,愛可生技術專家,公眾號『一樹一溪』作者,專注於研究 MySQL 和 OceanBase 源碼。 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 本文基於 MySQL 8.0.32 源碼,存儲引擎為 InnoDB。 1. 啓動事務 在《BEGIN 語句會馬上啓動事務嗎?》這篇文章中,我們介紹
昵称 愛可生開源社區
事務都以讀事務身份啓動,讀事務和只讀事務會在需要時發生變化,它們會怎麼變化?這是本文要回答的問題。 作者:操盛春,愛可生技術專家,公眾號『一樹一溪』作者,專注於研究 MySQL 和 OceanBase 源碼。 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 本文基於 MySQL 8.0.32 源碼,存儲引擎為 InnoDB。 1. update、delete
昵称 愛可生開源社區
1. 準備工作 參數配置: binlog_format = ROW binlog_rows_query_log_events = OFF 創建測試表: CREATE TABLE `t_binlog` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `i1` int DEFAULT '0', `str1` varchar(32) DEFAULT
昵称 愛可生開源社區
二階段提交的 prepare 階段,binlog 和 InnoDB 各自會有哪些動作? 本文基於 MySQL 8.0.32 源碼,存儲引擎為 InnoDB。 1. 二階段提交 二階段提交,顧名思義,包含兩個階段,它們是: prepare 階段。 commit 階段。 我們只考慮 SQL 語句操作 InnoDB 表的場景,對於用户事務,是否使用二階段提交,取決於是否開啓了 binlog。 因
昵称 愛可生開源社區
對比上一篇,這篇聊聊【讀已提交】隔離級別下,唯一索引衝突怎麼加鎖。 作者:操盛春,愛可生技術專家,公眾號『一樹一溪』作者,專注於研究 MySQL 和 OceanBase 源碼。 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 本文基於 MySQL 8.0.32 源碼,存儲引擎為 InnoDB。 目錄 [TOC] 正文 1. 準備工作 創建測試表: CR
昵称 愛可生開源社區
MySQL如何實現事務的四大特性(ACID) MySQL的事務支持主要通過InnoDB存儲引擎實現,其底層機制結合日誌系統(Undo Log/Redo Log)、鎖機制和多版本併發控制(MVCC),具體實現如下: 1. 原子性(Atomicity) 定義:事務的所有操作要麼全部成功,要麼全部失敗回滾。 實現: Undo Log(回滾日誌): 在事務修改數據前,Und
昵称 今夜有點兒涼
關於這個問題,村長我查過很多信息,有説來自官方,有自己分析的,莫衷一是,要麼太發散,要麼有幾分牽強,現在村長試解答一下。 這個問題其實挺有意思,理論上來説,可以存一條數據,那為啥要有這麼個規則呢? 我們知道,一頁的大小默認為 16*1024=16384 字節,但是,MySQL 允許的一行數據的存儲上限卻為 65535! 當然了,這 65535 個字節除了列本身的數據外,還包括一些其他數據(s
昵称 後廠村村長
解決併發事務帶來問題的兩種基本方式 併發事務訪問相同記錄的情況可以劃分為3種。 讀 - 讀情況:併發事務相繼續讀取相同的記錄。讀取操作本身不會對記錄有任何影響,不會引起什麼問題,所以允許這種情況的發生。 寫 - 寫情況:併發事務相繼對相同的記錄進行改動。 讀 - 寫或寫 - 讀情況:也就是一個事務進行讀取操作,另一個事務進行改動操作。 寫 - 寫情況 在寫 - 寫情況下會發生髒寫的現象,
昵称 Zeran