中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql-InnoDB事物的示例分析

發布時間:2021-01-05 10:29:48 來源:億速云 閱讀:201 作者:小新 欄目:MySQL數據庫

這篇文章給大家分享的是有關Mysql-InnoDB事物的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

事物基本概念

事物的特性(ACID)

  • 原子性 atomicity

  • 一致性 consistency

  • 隔離性 isolation

  • 持久性 durability

事物的類型

  • 扁平事物

  • 帶有保存點的扁平事物

  • 鏈事物 嵌套事務

  • 分布式事務

事物的實現

redo與undo redo
redo:保證事物的原子性、持久性,物理日志,基本上是順序寫
undo:保證事物的一致性,邏輯日志,undo會產生redo,用于事物回滾和mvcc,隨機讀寫

redo

redo log buffer
redo log file

force log at  commit機制實現事物的持久性

redo log buffer -> 文件系統緩存 -> (fsync) 磁盤文件

innodb_flush_log_at_trx_commit
0:master thread完成寫入磁盤
1:默認,每次事物提交必須fsync
2:寫入文件系統緩存,不執行fsync

log block

512 字節和磁盤山區大小一致,保證日志寫入是原子性的,不需要doublewrite ?技術

Mysql-InnoDB事物的示例分析

分為 512 - 12 -8 = 492
重做日志頭:12 字節
重做日志內容:
重做日志尾:8字節

LOG_BLOCK_HAR_NO【4字節】:log block在 log buffer的位置
LOG_BLOCK_HAR_DATA_LEN【2字節】:log block占用大小
LOG_BLOCK_FIRST_REC_GROUP【2字節】:第一個日志所在的偏移量
LOG_BLOCK_CHECKPOINT_NO【4字節】:最后被寫入時的檢查點第4字節的值 ??

log grooup

多個多個重做日志文件組成

redo log file

Mysql-InnoDB事物的示例分析

重做日志格式

Mysql-InnoDB事物的示例分析

redo_log_type:重做日志的類型
space:表空間的ID
page_no:頁的偏移量

LSN(log sequence number)

8字節,單調遞增
含義:
重做日志寫入總量
checkpoint的位置
頁的版本

Mysql-InnoDB事物的示例分析

undo

undo segment:共享表空間內

(128個)rollback segment > (1024個)undo segment ,事物并發限制在128*1024

undo log 格式

insert undo log
update undo log

Mysql-InnoDB事物的示例分析

purge

group commit

事物的隔離級別

READ UNCOMMIT:使用查詢語句不會加鎖,可能會讀到未提交的行(Dirty Read)
READ COMMIT:只對記錄加記錄鎖,而不會在記錄之間加間隙鎖,所以允許新的記錄插入到被鎖定記錄的附近,所以再多次使用查詢語句時,可能得到不同的結果(Non-Repeatable Read)EPEATABLE READ:多次讀取同一范圍的數據會返回第一次查詢的快照,不會返回不同的數據行,但是可能發生幻讀(Phantom Read);
SERIALIZABLE:InnoDB 隱式地將全部的查詢語句加上共享鎖,解決了幻讀的問題;

臟讀:在一個事務中,讀取了其他事務未提交的數據
不可重復讀:在一個事務中,同一行記錄被訪問了兩次卻得到了不同的結果。
幻讀:在一個事務中,同一個范圍內的記錄被讀取時,其他事務向這個范圍添加了新的記錄。

不可重復讀的原因就是,在 READ COMMITED 的隔離級別下,存儲引擎不會在查詢記錄時添加行鎖,鎖定 id = 3 這條記錄。

分布式事物

XA

Resource Managers:提供訪問事物資源的方法
Transaction Maneger:協調參與全局事物中的各個事物
Application Program:定義事物的便捷,指定全局事物中的操作

Mysql-InnoDB事物的示例分析

感謝各位的閱讀!關于“Mysql-InnoDB事物的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大荔县| 松桃| 东宁县| 博爱县| 邓州市| 广宁县| 延寿县| 温宿县| 双城市| 南宁市| 子长县| 乐东| 讷河市| 嵊州市| 阿克陶县| 睢宁县| 夹江县| 山阳县| 剑川县| 彭阳县| 拜城县| 库尔勒市| 峨边| 巫山县| 广汉市| 义乌市| 东光县| 富蕴县| 县级市| 凭祥市| 喀喇沁旗| 哈巴河县| 灵宝市| 宁强县| 金湖县| 广西| 开化县| 华宁县| 文成县| 北流市| 澄城县|