国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL事務(wù)相關(guān)筆記

這篇具有很好參考價值的文章主要介紹了MySQL事務(wù)相關(guān)筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

雜項

InnoDB最大特點:支持事務(wù)行鎖;

MyISAM不支持事務(wù)

介紹

一個事務(wù)是由一條或者多條對數(shù)據(jù)庫操作的SQL語句所組成的一個不可分割的單元,只有當(dāng)事務(wù)中的所有操作都正常執(zhí)行完了,整個事務(wù)才會被提交給數(shù)據(jù)庫。事務(wù)有如下特性:

1.事務(wù)的所有SQL語句全部執(zhí)行成功,才能提交(commit)事務(wù),把結(jié)果寫回磁盤上。

2.事務(wù)執(zhí)行過程中,有的SQL出現(xiàn)錯誤,那么事務(wù)必須要回滾(rollback)到最初的狀態(tài)。

ACID特性

  • 事務(wù)的原子性(Atomic)
  • 事務(wù)的一致性(Consistency)
  • 事務(wù)的隔離性(Isolation)

當(dāng)兩個或者多個事務(wù)并發(fā)執(zhí)行時,為了保證數(shù)據(jù)的安全性,將一個事物內(nèi)部的操作與其它事務(wù)的操作隔離起來,不被其它正在執(zhí)行的事務(wù)所看到,使得并發(fā)執(zhí)行的各個事務(wù)之間不能互相影響。

  • 事務(wù)的持久性(Durability)

事務(wù)完成(commit)以后,DBMS保證它對數(shù)據(jù)庫中的數(shù)據(jù)的修改是永久性的,即使數(shù)據(jù)庫因為故障出錯,也應(yīng)該能夠恢復(fù)數(shù)據(jù)!

ACD特性是由mysql的undo log和 redo log 保證;

I特性是由mysql事務(wù) 鎖機制保證;

mysql中最重要的是日志而不是數(shù)據(jù)。

事務(wù)相關(guān)指令

BEGIN; 開啟一個事務(wù)

COMMIT; 提交一個事務(wù)

ROLLBACK; 回滾一個事務(wù)到初始的位置

SAVEPOINT point1; 設(shè)置一個名字為point1的保存點

ROLLBACK TO point1; 事務(wù)回滾到保存點point1,而不是回滾到初始狀態(tài)

SET TX_ISOLATION='REPEATABLE-READ'; 設(shè)置事務(wù)的隔離級別

SELECT @@ TX_ISOLATION; 查詢事務(wù)的隔離級別

實踐例子

查看是否設(shè)置了自動提交:

MySQL事務(wù)相關(guān)筆記

事務(wù)并發(fā)存在的問題

  • 臟讀(Dirty Read):一個事務(wù)讀取了另一個事務(wù)未提交的數(shù)據(jù)。例如當(dāng)事務(wù)A和事務(wù)B并發(fā)執(zhí)行時,當(dāng)事務(wù)A更新后,事務(wù)B查詢讀取到A尚未提交的數(shù)據(jù),此時事務(wù)A回滾,則事務(wù)B讀到的數(shù)據(jù)就是無效的臟數(shù)據(jù)。(事務(wù)B讀取了事務(wù)A尚未提交的數(shù)據(jù))
  • 不可重復(fù)讀(NonRepeatable Read):一個事務(wù)的操作導(dǎo)致另一個事務(wù)前后兩次讀取到不同的數(shù)據(jù)。例如當(dāng)事務(wù)A和事務(wù)B并發(fā)執(zhí)行時,當(dāng)事務(wù)B查詢讀取數(shù)據(jù)后,事務(wù)A更新操作更改事務(wù)B查詢到的數(shù)據(jù),此時事務(wù)B再次去讀該數(shù)據(jù),發(fā)現(xiàn)前后兩次讀的數(shù)據(jù)不一樣。(事務(wù)B讀取了事務(wù)A已提交的數(shù)據(jù))
  • 虛讀(Phantom Read)幻讀:一個事務(wù)的操作導(dǎo)致另一個事務(wù)前后兩次查詢的結(jié)果數(shù)據(jù)量不同。(事務(wù)B讀取了事務(wù)A新增加的數(shù)據(jù)或者讀不到事務(wù)A刪除的數(shù)據(jù))

事務(wù)的隔離級別

MySQL支持的四種隔離級別是:

1、READ-UNCOMMITTED。未提交讀。說明在提交前一個事務(wù)可以看到另一個事務(wù)的變化。這樣讀臟數(shù)據(jù),不可重復(fù)讀和虛讀都是被允許的。

2、READ-COMMITTED已提交讀。說明讀取未提交的數(shù)據(jù)是不允許的。這個級別仍然允許不可重復(fù)讀和虛讀產(chǎn)生。

3、REPEATABLE-READ。可重復(fù)讀。說明事務(wù)保證能夠再次讀取相同的數(shù)據(jù)而不會失敗,但虛讀仍然會出現(xiàn)。

4、SERIALIZABLE。串行化。是最高的事務(wù)級別,它防止讀臟數(shù)據(jù),不可重復(fù)讀和虛讀。(它相當(dāng)于加了讀寫鎖,某個會話讀時,其他線程不能寫)

MySQL事務(wù)相關(guān)筆記

注解

事務(wù)隔離級別越高,為避免沖突所花費的性能也就越多,降低并發(fā)度。

在“可重復(fù)讀”級別,實際上可以解決部分的虛讀問題,但是不能防止 update 更新產(chǎn)生的虛讀問題,要禁止幻讀產(chǎn)生,還是需要設(shè)置串行化隔離級別。文章來源地址http://www.zghlxwxcb.cn/news/detail-487338.html

到了這里,關(guān)于MySQL事務(wù)相關(guān)筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MySQL--InnoDB的一次更新事務(wù)實現(xiàn)流程與二階段提交

    InnoDB更新事務(wù)流程 涉及內(nèi)容 一次InnoDB的事務(wù)更新操作涉及Buffer Pool,BinLog,RedoLog,UndoLog和物理磁盤。 Buffer Pool: Buffer Pool是InnoDB引入的中間層:內(nèi)存上的一塊連續(xù)空間,用來緩存數(shù)據(jù)頁,每個數(shù)據(jù)頁的大小為16KB。它的存在是為了提高SQL的讀寫性能,避免每次查詢和修改都直

    2024年02月02日
    瀏覽(26)
  • 請你來了解一下Mysql-InnoDB中事務(wù)的兩段式提交

    請你來了解一下Mysql-InnoDB中事務(wù)的兩段式提交

    A:原子性 原子性表示把一個事務(wù)中所有的操作視為一個整體,要么全部成功,要么全部失敗,是事務(wù)模型區(qū)別文件系統(tǒng)的重要特征之一 C:一致性 官方對一致性的解釋為事務(wù)將數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)橄乱环N一致性狀態(tài),在事務(wù)開始之前和食物結(jié)束以后,數(shù)據(jù)庫的完整性約

    2024年01月23日
    瀏覽(20)
  • MySQL系統(tǒng)表information_schema.INNODB_TRX詳解及查看當(dāng)前運行事務(wù)

    在日常管理數(shù)據(jù)庫的過程中,有時需要查詢MySQL數(shù)據(jù)庫是否正在有正在執(zhí)行的事務(wù),便于排查業(yè)務(wù)問題。MySQL的系統(tǒng)庫表有數(shù)據(jù)維護對應(yīng)的信息,就在 information_schema 庫中的 INNODB_TRX 表,包含事務(wù)中是否存在鎖,事務(wù)開啟時間,事務(wù)執(zhí)行的語句等等。 SELECT * FROM information_schema

    2024年02月16日
    瀏覽(22)
  • 【Spring/MySQL數(shù)據(jù)庫系列】數(shù)據(jù)庫事務(wù)的特點與隔離級別

    【Spring/MySQL數(shù)據(jù)庫系列】數(shù)據(jù)庫事務(wù)的特點與隔離級別

    ?? 前面的話 ?? 本文已經(jīng)收錄到《Spring框架全家桶系列》專欄,本文將介紹有關(guān)數(shù)據(jù)庫事務(wù)的特點以及隔離級別。 ??博客主頁:未見花聞的博客主頁 ??歡迎關(guān)注??點贊??收藏??留言?? ??本文由 未見花聞 原創(chuàng), CSDN 首發(fā)! ??首發(fā)時間:??2023年5月20日?? ??堅

    2024年02月05日
    瀏覽(25)
  • MySQL 8.0 Reference Manual(讀書筆記63節(jié)--InnoDB Locking)

    MySQL 8.0 Reference Manual(讀書筆記63節(jié)--InnoDB Locking)

    To implement a large-scale, busy, or highly reliable database application, to port substantial【s?b?st?n?l】 code from a different database system, or to tune MySQL performance, it is important to understand InnoDB locking and the InnoDB transaction model. InnoDB implements【??mpl?ments 實施; 執(zhí)行; 貫徹; 使生效; 】 standard row-level lock

    2024年04月22日
    瀏覽(26)
  • MySQL 8.0 Reference Manual(讀書筆記80節(jié)-- InnoDB Row Formats)

    The row format of a table determines how its rows are physically stored, which in turn can affect the performance of queries and DML operations. As more rows fit into a single disk page, queries and index lookups can work faster, less cache memory is required in the buffer pool, and less I/O is required to write out updated values. The data in each table is

    2024年04月08日
    瀏覽(27)
  • MySQL 8.0 Reference Manual(讀書筆記69節(jié)--InnoDB Startup Configuration)

    有些InnoDB的配置,是在實例初始化時,就決定了,所以,建議寫在configuration file 文件中。 Because MySQL uses data file, log file, and page size settings to initialize InnoDB, it is recommended that you define these settings in an option file that MySQL reads at startup, prior to initializing InnoDB. Normally, InnoDB is initialize

    2024年03月24日
    瀏覽(24)
  • MySQL 8.0 Reference Manual(讀書筆記70節(jié)--InnoDB Buffer Pool Configuration)

    When increasing or decreasing innodb_buffer_pool_size , the operation is performed in chunks. Chunk size is defined by the innodb_buffer_pool_chunk_size configuration option, which has a default of 128M.-----innodb_buffer_pool_size的擴容和縮容,都是以innodb_buffer_pool_chunk_size為單位進行的,其默認為128M 。 Buffer pool size must always

    2024年03月24日
    瀏覽(92)
  • MySQL 8.0 Reference Manual(讀書筆記84節(jié)-- InnoDB and Online DDL (4))

    Disk space requirements for online DDL operations are outlined【?a?tla?nd 概述;略述;顯示…的輪廓;勾勒…的外形;】 below. The requirements do not apply to operations that are performed instantly. ? Temporary log files: A temporary log file records concurrent DML when an online DDL operation creates an index or alters a table. The tempora

    2024年04月08日
    瀏覽(30)
  • MySQL 8.0 Reference Manual(讀書筆記71節(jié)--InnoDB Buffer Pool Configuration (2))

    MySQL 8.0 Reference Manual(讀書筆記71節(jié)--InnoDB Buffer Pool Configuration (2))

    【目的是未來提高并發(fā),減少競爭】 For systems with buffer pools in the multi-gigabyte range, dividing the buffer pool into separate instances can improve concurrency, by reducing contention as different threads read and write to cached pages. This feature is typically intended for systems with a buffer pool size in the multi-gigabyte range. Mu

    2024年03月24日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包