本文目錄一覽:
Mysql資料庫中,事務是指什麼?如何使用該功能?
MySQL 事務
什麼是事務?
MySQL 事務主要用於處理操作量大,複雜度高的數據。比如說,在人員管理系統中,你刪除一個人員,你既需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些資料庫操作語句就構成一個事務!
在 MySQL 中只有使用了 Innodb 資料庫引擎的資料庫或表才支持事務。
事務處理可以用來維護資料庫的完整性,保證成批的 SQL 語句要麼全部執行,要麼全部不執行。
事務用來管理 insert,update,delete 語句
一般來說,事務是必須滿足4個條件(ACID):原子性(Atomicity,或稱不可分割性)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、持久性(Durability)。
原子性:一個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
一致性:在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及後續資料庫可以自發性地完成預定的工作。
隔離性:資料庫允許多個並發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務並發執行時由於交叉執行而導致數據的不一致。事務隔離分為不同級別,包括讀未提交(Read uncommitted)、讀提交(read committed)、可重複讀(repeatable read)和串列化(Serializable)。
持久性:事務處理結束後,對數據的修改就是永久的,即便系統故障也不會丟失。
在 MySQL 命令行的默認設置下,事務都是自動提交的,即執行 SQL 語句後就會馬上執行 COMMIT 操作。因此要顯式地開啟一個事務務須使用命令 BEGIN 或 START TRANSACTION,或者執行命令 SET AUTOCOMMIT=0,用來禁止使用當前會話的自動提交。
from 樹懶學堂 – 一站式數據知識平台
mysql事務的四大特性是什麼?
1、原子性(Atomicity)原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響。
2、 一致性(Consistency)一致性是指事務必須使資料庫從一個一致性狀態變換到另一個一致性狀態,也就是說一個事務執行之前和執行之後都必須處於一致性狀態。
拿轉賬來說,假設用戶A和用戶B兩者的錢加起來一共是5000,那麼不管A和B之間如何轉賬,轉幾次賬,事務結束後兩個用戶的錢相加起來應該還得是5000,這就是事務的一致性。
3、隔離性(Isolation)隔離性是當多個用戶並發訪問資料庫時,比如操作同一張表時,資料庫為每一個用戶開啟的事務,不能被其他事務的操作所干擾,多個並發事務之間要相互隔離。
即要達到這麼一種效果:對於任意兩個並發的事務T1和T2,在事務T1看來,T2要麼在T1開始之前就已經結束,要麼在T1結束之後才開始,這樣每個事務都感覺不到有其他事務在並發地執行。
4、持久性(Durability)持久性是指一個事務一旦被提交了,那麼對資料庫中的數據的改變就是永久性的,即便是在資料庫系統遇到故障的情況下也不會丟失提交事務的操作。
擴展資料
MyISAMMySQL5.0之前的默認資料庫引擎,最為常用。擁有較高的插入,查詢速度,但不支持事務InnoDB事務型資料庫的首選引擎,支持ACID事務,支持行級鎖定,MySQL5.5起成為默認資料庫引擎BDB源自BerkeleyDB,事務型資料庫的另一種選擇,支持Commit和Rollback等其他事務特性Memory所有數據置於內存的存儲引擎,擁有極高的插入,更新和查詢效率。
但是會佔用和數據量成正比的內存空間。並且其內容會在MySQL重新啟動時丟失Merge將一定數量的MyISAM表聯合而成一個整體,在超大規模數據存儲時很有用Archive非常適合存儲大量的獨立的,作為歷史記錄的數據。
因為它們不經常被讀取。Archive擁有高效的插入速度,但其對查詢的支持相對較差Federated將不同的MySQL伺服器聯合起來,邏輯上組成一個完整的資料庫。非常適合分散式應用Cluster/NDB高冗餘的存儲引擎,用多台數據機器聯合提供服務以提高整體性能和安全性。適合數據量大,安全和性能要求高的應用
什麼是事務?具有哪些特性?mysql中
事務是資料庫操作最小單元,把多件事當一件事來處理,是一組不可在分割的操作集合。作為單個邏輯工作單元執行一系列操作,這些操作作為一個整體一起向系統提交,要麼都執行,要麼都不執行。
特性ACID(原子性、一致性、隔離性、持久性)
原子性:原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,,因此事務操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有一點影響。
一致性:一致性是指事務必須使資料庫從一個一致性狀態轉換到另一個一致性狀態,就是說事務執行前後都必須處在一致性狀態。
隔離性:隔離性使當多個用戶訪問資料庫時,比如操作同一張表,資料庫開啟的每一個事務,不能被其它事務干擾,多個並發事務之間相互隔離。
持久性:持久性是指一個事務一旦提交,對資料庫中數據的改變是永久的,即使是資料庫系統遇到故障也不會丟失提交的事務操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/252849.html