介紹 Mysql-InnoDB 事物學習

coldplay.xixi
發布: 2021-01-02 09:41:07
轉載
1935 人瀏覽過

mysql影片教學欄位介紹InnoDB的事物學習

介紹 Mysql-InnoDB 事物學習

##推薦(免費):mysql影片教學

#事物基本概念

事物的特性(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位元組】:第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 格式


介紹 Mysql-InnoDB 事物學習

#insert undo log

update undo log

#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 事物學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:segmentfault.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!