MySQL事物

事務的概念

●事務是一種機制、一個操作序列,包含了一組數據庫操作命令,并且把所有的命令作為一個整體

一起向系統提交或撤銷操作請求,即這一組數據庫命令要么都執行,要么都不執行。

●事務是一個不可分割的工作邏輯單元,在數據庫系統上執行并發操作時,事務是最小的控制單

元。

●事務適用于多用戶同時操作的數據庫系統的場景,如銀行、保險公司及證券交易系統等等。

●事務通過事務的整體性以保證數據的一致性。

●事務能夠提高在向表中更新和插入信息期間的可靠性。

說白了,所謂事務,它是一個操作序列,這些操作要么都執行,要么都不執行,它是一個不可分割

的工作單位。

事務的ACID特點

ACID,是指在可靠數據庫管理系統(DBMS)中,事務(transaction)應該具有的四個特性:原子性

(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。這是可靠

數據庫所應具備的幾個特性。

●原子性:指事務是一個不可再分割的工作單位,事務中的操作要么都發生,要么都不發生。

????????事務是一個完整的操作,事務的各元素是不可分的。

????????事務中的所有元素必須作為一個整體提交或回滾。

????????如果事務中的任何元素失敗,則整個事務將失敗。

●一致性:指在事務開始之前和事務結束以后,數據庫的完整性約束沒有被破壞。

????????當事務完成時,數據必須處于一致狀態。

????????在事務開始前,數據庫中存儲的數據處于一致狀態。

????????在正在進行的事務中,數據可能處于不一致的狀態。

????????當事務成功完成時,數據必須再次回到已知的一致狀態。

●隔離性:指在并發環境中,當不同的事務同時操縱相同的數據時,每個事務都有各自的完整數據

空間。

????????對數據進行修改的所有并發事務是彼此隔離的,表明事務必須是獨立的,它不應以任何方式依賴于或影響其他事務。

????????修改數據的事務可在另一個使用相同數據的事務開始之前訪問這些數據,或者在另一個使用相同數據的事務結束之后訪問這些數據。

????????也就是說并發訪問數據庫時,一個用戶的事務不被其他事務所干擾,各并發事務之間數據庫是獨立的。

當多個客戶端并發地訪問同一個表時,可能出現下面的一致性問題:

臟讀:當一個事務正在訪問數據,并且對數據進行了修改,而這種修改還沒有提交到數據庫

????????中,這時,另外一個事務也訪問這個數據,然后使用了這個數據。

不可重復讀:指在一個事務內,多次讀同一數據。在這個事務還沒有結束時,另外一個事務

也訪問該同一數據。那么,在第一個事務中的兩次讀數據之間,由于第二個事務的修改,那么第一

個事務兩次讀到的的數據可能是不一樣的。這樣就發生了在一個事務內兩次讀到的數據是不一樣

的,因此稱為是不可重復讀。(即不能讀到相同的數據內容)

幻讀:一個事務對一個表中的數據進行了修改,這種修改涉及到表中的全部數據行。同時,

另一個事務也修改這個表中的數據,這種修改是向表中插入一行新數據。那么,操作前一個事務的

用戶會發現表中還有一個沒有修改的數據行,就好象發生了幻覺一樣。

丟失更新:兩個事務同時讀取同一條記錄,A先修改記錄,B也修改記錄(B不知道A修改

過),B提交數據后B的修改結果覆蓋了A的修改結果。

事務的隔離級別決定了事務之間可見的級別。

MySQL事務支持如下四種隔離,用以控制事務所做的修改,并將修改通告至其它并發的事務:

未提交讀(Read Uncommitted(RU)):

允許臟讀,即允許一個事務可以看到其他事務未提交的修改。

提交讀(Read Committed(RC)):

允許一個事務只能看到其他事務已經提交的修改,未提交的修改是不可見的。防止臟讀。

可重復讀(Repeatable Read(RR)):---mysql默認的隔離級別

確保如果在一個事務中執行兩次相同的SELECT語句,都能得到相同的結果,不管其他事務是否提

交這些修改。可以防止臟讀和不可重復讀。

串行讀(Serializable):---相當于鎖表

完全串行化的讀,將一個事務與其他事務完全地隔離。每次讀都需要獲得表級共享鎖,讀寫相互都

會阻塞。可以防止臟讀,不可重復讀取和幻讀,(事務串行化)會降低數據庫的效率。
?

mysql默認的事務處理級別是 repeatable read ,而Oracle和SQL Server是 read committed 。

事務隔離級別的作用范圍分為兩種:

● 全局級:對所有的會話有效

● 會話級:只對當前的會話有效

查詢全局事務隔離級別:

show global variables like '%isolation%';
SELECT @@global.tx_isolation;

?

查詢會話事務隔離級別:

show session variables like '%isolation%';
SELECT @@session.tx_isolation; 
SELECT @@tx_isolation;

設置全局事務隔離級別:

set global transaction isolation level read committed;
set @@global.tx_isolation='read-committed';   #重啟服務后失效

●持久性:在事務完成以后,該事務所對數據庫所作的更改便持久的保存在數據庫之中,并不會被

回滾。

指不管系統是否發生故障,事務處理的結果都是永久的。

一旦事務被提交,事務的效果會被永久地保留在數據庫中。


總結:在事務管理中,原子性是基礎,隔離性是手段,一致性是目的,持久性是結果。

事務控制語句

BEGIN 或 START TRANSACTION:顯式地開啟一個事務。

COMMIT 或 COMMIT WORK:提交事務,并使已對數據庫進行的所有修改變為永久性的。

ROLLBACK 或 ROLLBACK WORK:回滾會結束用戶的事務,并撤銷正在進行的所有未提交的修

改。

SAVEPOINT S1:使用 SAVEPOINT 允許在事務中創建一個回滾點,一個事務中可以有多個

SAVEPOINT;“S1”代表回滾點名稱。

ROLLBACK TO [SAVEPOINT] S1:把事務回滾到標記點。

使用 set 設置控制事務

SET AUTOCOMMIT=0;						#禁止自動提交
SET AUTOCOMMIT=1;						#開啟自動提交,Mysql默認為1
SHOW VARIABLES LIKE 'AUTOCOMMIT';		#查看Mysql中的AUTOCOMMIT值

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37125.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37125.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37125.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習經典檢測方法概述

一、深度學習經典檢測方法 two-stage(兩階段):Faster-rcnn Mask-Rcnn系列 one-stage(單階段):YOLO系列 1. one-stage 最核心的優勢:速度非常快,適合做實時檢測任務! 但是…

定制化、精細化、場景化AI訓練數據趨于基礎數據服務市場主流

算法、算力和數據共同構成了AI產業鏈技術發展的三大核心要素。在人工智能行業發展進程中,有監督的深度學習算法是推動人工智能技術取得突破性發展的關鍵技術理論,而大量訓練數據的支撐則是有監督的深度學習算法實現的基礎。算法模型從技術理論到應用實踐…

ISSCC論文詳解2024 34.2——雙端口設計實現高面積利用的浮點/整數存算

本文將要介紹的文獻主題為浮點存內計算,題目為《A 16nm 96Kb Integer/Floating-Point Dual-Mode-Gain-CellComputing-in-Memory Macro Achieving 73.3-163.3TOPS/W and 33.2-91.2TFLOPS/W for AI-Edge Devices》,下面本文將從文章基本信息與背景知識、創…

基于Jmeter的分布式壓測環境搭建及簡單壓測實踐

寫在前面 平時在使用Jmeter做壓力測試的過程中,由于單機的并發能力有限,所以常常無法滿足壓力測試的需求。因此,Jmeter還提供了分布式的解決方案。本文是一次利用Jmeter分布式對業務系統登錄接口做的壓力測試的實踐記錄。按照慣例&#xff0…

仿迪恩城市門戶分類信息網discuz模板

Discuz x3.3模板 仿迪恩城市門戶分類信息網 (GBK) Discuz模板 仿迪恩城市門戶分類信息網(GBK)

【深度學習】卷積神經網絡CNN

李宏毅深度學習筆記 圖像分類 圖像可以描述為三維張量(張量可以想成維度大于 2 的矩陣)。一張圖像是一個三維的張量,其中一維代表圖像的寬,另外一維代表圖像的高,還有一維代表圖像的通道(channel&#xff…

怎樣查看vsphere client 的登錄日志

- 問題摘要: 怎樣查看vsphere client 的登錄日志 - 解決方案/工作方法 1.登錄vsphere client > vc > Monitor > Tasks and Events > Events, 查看日志 2. 查看VC 的websso.log日志 /var/log/vmware/sso/websso.log 3. 可以把websso.log文件拿到本地電…

前端Web開發HTML5+CSS3+移動web視頻教程 Day1 HTML 第一天

鏈接 HTML 介紹 HTML&#xff1a;HyperText Markup Language&#xff0c;超文本標記語言&#xff0c;是一種用于創建網頁的標準標記語言。 HTML 運行在瀏覽器上&#xff0c;由瀏覽器來解析。 對于中文網頁需要使用 <meta charset"utf-8"> 聲明編碼&#xf…

多圖示例:如何呈現論文結果中的各種圖表

本文根據《Journal of the American College of Cardiology》上曾發表的一篇文章《Making Sense of Statistics in Clinical Trial Reports》&#xff0c;來全面而具體地說明臨床試驗論文中&#xff0c;各種類型數據與結果使用圖表的正確展示方法。 本文將著重介紹基線數據、試…

3.Android逆向協議-APP反反編譯及回編譯

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;微塵網校 上一個內容&#xff1a;2.Android逆向協議-了解常用的逆向工具 在實際應用場景中會閱讀smail代碼&#xff0c;比如調試app&a…

【ai】tx2 nx :ubuntu查找NvInfer.h 路徑及哪個包、查找符號

在Ubuntu系統中,你可以使用多種方法來查找某個頭文件的路徑。這里有幾種常用的方法: 使用find命令: find命令是一個非常強大的工具,可以在文件系統中搜索匹配特定條件的文件。例如,如果你想查找名為stdio.h的頭文件,可以使用以下命令:bash 復制代碼 sudo find / -name …

響應頭缺省xss防御頭(X-XSS-Protection、X-Content-Type-Options)

HTTP X-Content-Type-Options 缺失 Web 服務器對于 HTTP 請求的響應頭缺少 X-Content-Type-Options,這意味著此網站更易遭受跨站腳本攻擊(XSS)。X-Content-Type-Options 響應頭相當于一個提示標志,被服務器用來提示客戶端一定要遵循在 Content-Type 首部中對 MIME 類型 的…

Python頭歌數據聚合

在Python中進行數據聚合通常涉及到使用Pandas庫&#xff0c;它是一個功能強大的數據分析工具。以下是一些基本的步驟和示例代碼&#xff0c;展示如何使用Pandas進行數據聚合&#xff1a; 導入Pandas庫: import pandas as pd讀取數據: 假設您有兩個CSV文件&#xff0c;我們可以使…

嵌入式Linux系統編程 — 4.5 strcmp、strchr 等函數實現字符串比較與查找

目錄 1 字符串比較 1.1 strcmp() 函數 1.2 strncmp() 函數 1.3 示例程序 2 字符串查找 2.1 strchr() 函數 2.2 strrchr() 函數 2.3 strstr() 函數 2.4 strpbrk() 函數 2.5 示例程序 1 字符串比較 strcmp() 和 strncmp() 函數是C語言標準庫中用于比較兩個字符串的函…

經典排序算法詳解

目錄 創作不易&#xff0c;如對您有幫助&#xff0c;還望一鍵三連&#xff0c;謝謝&#xff01; 前言 學習目標&#xff1a; 直接插入排序 基本思想&#xff1a; 代碼 希爾排序&#xff1a; gap取值 代碼 特性總結 選擇排序 基本思想 代碼 堆排序 思想 代碼 冒…

[CTF]-PWN:mips反匯編工具,ida插件retdec的安裝

IDA是沒有辦法直接按F5來反匯編mips的匯編的&#xff0c;而較為復雜的函數直接看匯編不太現實&#xff0c;所以只能借用插件來反匯編 先配置環境&#xff0c;下載python3.4以上的版本&#xff0c;并將其加入到環境變量中 下載retdec 地址&#xff1a;Release v1.0-ida80 ava…

蘋果開發者證書申請流程

蘋果開發者證書申請流程&#xff1a; 1.Certificates 后面加號 2.iOS Distribution (App Store and Ad Hoc) 點擊continue 3.選擇Upload a Certificate Signing Request To manually generate a Certificate, you need a Certificate Signing Request (CSR…

Unity關于Addressables.Release釋放資源內存問題

前言 最近在編寫基于Addressables的資源管理器&#xff0c;對于資源釋放模塊配合MemoryProfiler進行了測試&#xff0c;下面總結下測試Addressables.Release的結論。 總結 使用Addressables.Release釋放資源時&#xff0c;通過MemoryProfiler檢查內存信息發現加載的內容還在…

多租戶與低代碼開發的應用:解鎖企業數字化轉型的無限可能

在數字化轉型的浪潮中&#xff0c;多租戶與低代碼開發已經成為推動企業快速、靈活、安全地構建和部署應用的關鍵技術。本文將深入探討這兩種技術的結合如何為企業帶來前所未有的變革和機遇。 多租戶架構&#xff1a;資源共享與隔離的藝術 多租戶架構&#xff0c;是一種高級的軟…

一文讓你簡單明了的知道云管理平臺的作用

隨著云計算的飛速發展&#xff0c;越來越多的企業實現了上云。因此云管理平臺也在云計算環境中扮演著至關重要的角色&#xff0c;在企業上云后充分發揮作用。今天我們小編就來為大家簡單講解一下云管平臺的作用。 一文讓你簡單明了的知道云管理平臺的作用 作用1、提高工作效率…