1. 程式人生 > >事務的概念和MySQL事務支援

事務的概念和MySQL事務支援

           事務是由一步或幾步資料庫操作序列組成邏輯執行單元,這系列操作要麼全部執行,要麼全部放棄執行。程式和事務是兩個不同的概念。一般而言:一段程式中可能包含多個事務。

          事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續性(Durability)。這四個特性也簡稱ACID性。

(1)原子性:事務是應用中最小的執行單位,就如原子是自然界最小顆粒,具有不可再分的特徵一樣。事務是應用中不可再分的最小邏輯執行體。

(2)一致性:事務執行的結果,必須使資料庫從一個一致性狀態,變到另一個一致性狀態。當資料庫中只包含事務成功提交的結果時,資料庫處於一致性狀態。一致性是通過原子性來保證的。

(3)隔離性:各個事務的執行互不干擾,任意一個事務的內部操作對其他併發的事務,都是隔離的。也就是說:併發執行的事務之間不能看到對方的中間狀態,併發執行的事務之間不能相互影響。

(4)持續性:持續性也稱為永續性,指事務一旦提交,對資料所做的任何改變,都要記錄到永久儲存器中,通常是儲存進物理資料庫。

資料庫的事務有下列語句組成:

一組DML(Data Manipulate Language,即資料操作語言)經過這組DML修改後資料將保持較好的一致性。

一個DDL(Data Definition Language,即資料定義語言)語句。

一個DCL(Data control Language,即資料控制語言)語句。

       DDL和DCL語句最多隻能有一個,因為DDL和DCL語句都會導致事務立即提交。

       當事務所包含的全部資料庫操作都成功執行後,應該提交(commit)事務,使這些修改永久生效。

       事務提交有兩種方式:顯式提交和自動提交。

(1)顯式提交:使用commit。

(2)自動提交:執行DDL或DCL,或者程式正常退出。

相關推薦

事務概念MySQL事務支援

           事務是由一步或幾步資料庫操作序列組成邏輯執行單元,這系列操作要麼全部執行,要麼全部放棄執行。程式和事務是兩個不同的概念。一般而言:一段程式中可能包含多個事務。           事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolatio

事務的隔離級別mysql事務隔離級別修改

eat log control 容易 新的 pda mit 全局 nbsp A事務做了操作 沒有提交 對B事務來說 就等於沒做 獲取的都是之前的數據 但是 在A事務中查詢的話 查到的都是操作之後的數據 沒有提交的數據只有自己看得到,並沒有update到數據庫。 查看In

Spring事務專題(三)事務的基本概念Mysql事務處理原理

# 前言 本專題大綱: ![專欄大綱](https://gitee.com/wx_cc347be696/blogImage/raw/master/image-20200725231232778.png) 我重新整理了大綱,思考了很久,決定單獨將MySQL的事務實現原理跟Spring中的事務示例分為兩篇文

事務1,mysql事務,分散式事務,雜記1

定義 單個邏輯單元執行一組操作,要麼成功要麼失敗 特性 原子工作單元 對資料修改要麼執行要麼不執行 一致性 從一個一致狀態到另一個一致狀態

Spring的事務管理資料庫事務相關知識

1 初步理解        理解事務之前,先講一個你日常生活中最常乾的事:取錢。         比如你去ATM機取1000塊錢,大體有兩個步驟:首先輸入密碼金額,銀行卡扣掉1000元錢;然後ATM出1000元錢。這兩個步驟必須是要麼都執行要麼都不執行。如果銀行卡扣除了1

關於宣告式事務管理註解事務

在javaweb操作中,當涉及到資料庫的持久化操作的時候就有一個大人物需要提起:事務 1,在原始的開發中事務可以通過在spring中配置進行操作,基本的原理就是,在spring中加入相應的sessionfactory(不同 的持久化框架不一樣,mybatis為sqlsess

mysql表型別MyISAMInnoDB區別(mysql支援事務解決)

mysql表型別MyISAM和InnoDB區別 MyISAM:這個是預設型別,它是基於傳統的ISAM型別,ISAM是Indexed Sequential Access Method (有索引的順序訪問方法) 的縮寫,它是儲存記錄和檔案的標準方法.與其他儲存引擎比較,MyIS

Mysql事務詳解(一)事務概念,四大特性,使用回滾

以往的時候在java中,下面一個語句就可以操作一條資料庫語句<span style="font-family: Arial, Helvetica, sans-serif;">Class.forName("com.mysql.jdbc.Driver");//載入相

mysql事務鎖InnoDB

格式 一次 photos 出了 線上 man down efm 常見 背景 MySQL/InnoDB的加鎖分析,一直是一個比較困難的話題。我在工作過程中,經常會有同事咨詢這方面的問題。同時,微博上也經常會收到MySQL鎖相關的私信,讓我幫助解決一些死鎖的問題

Net Core中數據庫事務隔離詳解——以DapperMysql為例

事務 ring 增刪改 tostring 測試 stc efault 多個 log Net Core中數據庫事務隔離詳解——以Dapper和Mysql為例 事務隔離級別 準備工作 Read uncommitted 讀未提交 Read committed 讀取提交內

MySQL事務控制鎖定語句

1.  預設情況下 ,表鎖和行鎖都是自動獲得的,不需要額外命令。 2.  某些情況下,使用者需要明確地進行鎖表或者進行事務的控制,以便確保整個事務的完整性。 3. LOCK  TABLES  可以鎖定用於當前執行緒的表。如果表被其他執行緒鎖定,則當前執

資料庫-事務處理的概念理論簡介

在看這一部分內容之前,我對資料庫一些基礎概念和基礎操作的認識十分淺薄,也沒有一些資料庫管理的經驗,因此當學這一部分的時候遇到了賊多理解上的誤區和困難。難受呀,基礎差真的不行。。。但是我已經沒有時間先從頭仔細學習資料庫基礎再學這一部分了,因此只能在泥濘中前行。即使在本文結束之前,好多概念我

事務的四個特徵MySQL的四種隔離級別

來源:https://www.jb51.net/article/96179.htm 一、首先什麼是事務? 事務是應用程式中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,一個事務中的一系列的操作要麼全部成功,要麼一個都不做。 事

MySQL事務控制鎖定語句

MySQL 支援對 MyISAM 和 MEMORY 儲存引擎的表進行表級鎖定,對 BDB 儲存引擎的表進行頁級鎖定,對 InnoDB 儲存引擎的表進行行級鎖定。預設情況下,表鎖和行鎖都是自動獲得的,不需要額外的命令。但是在有的情況下,使用者需要明確地進行鎖表或者進行事務的控制

mysql事務鎖 SELECT FOR UPDATE

事務:當然有的人用begin /begin work .推薦用START TRANSACTION 是SQL-99標準啟動一個事務。 start transaction #開始一個事務 操作 savepoint sp1 #儲存點名稱 操作 ROLLBACK ROLLBACK To sp1

Net Core中資料庫事務隔離詳解——以DapperMysql為例

原文: Net Core中資料庫事務隔離詳解——以Dapper和Mysql為例 Net Core中資料庫事務隔離詳解——以Dapper和Mysql為例 事務隔離級別 準備工作 Read uncommitted 讀未提交 Read

Hibernate中的事務概念及其支援事務型別

對於一個持久化框架,或者說ORM軟體,事務的概念可能包含如下不同的內涵: 底層資料庫的物理事務持久化上下文字身的邏輯事務基於持久化框架的上層應用事務 對於底層資料庫的物理事務,這依賴於資料庫管理系統本身提供的事務功能。對於Hibernate來說,只是封裝了JDBC連線資料庫

事務的基本概念事務的性質

一、事務 所謂事務是使用者定義的一個數據庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。例如,在關係資料庫中,一個事務可以是一條SQL語句、一組SQL語句或者整個程式。 事務和程式是兩個概念。一般的講,一個程

MYSQL 事務用戶權限

and mysql 事務 特殊 多個 圖表 存儲引擎 用戶密碼 虛擬表 enc 一、 什麽是事務:簡單說,所謂事務就是一組操作,要麽操作都成功要麽都不成功。 二、事務的使用流程   1. 第一步:開啟一個事務,start transaction;   2. 第二步:正常的S

詳細分析MySQL事務日誌(redo logundo log)

innodb事務日誌包括redo log和undo log。redo log是重做日誌,提供前滾操作.undo log是回滾日誌,提供回滾操作。undo log和redo log都算是用來恢復的日誌:1.redo log通常是物理日誌,記錄的是資料頁的物理修改,而不是某一行或