日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql事物 总结_Mysql事务总结

發(fā)布時(shí)間:2025/3/20 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql事物 总结_Mysql事务总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)庫 事務(wù)的特性ACID 事務(wù)(Transaction)是并發(fā)控制的基本單位。 所謂事務(wù),它是一個(gè)操作序列,這些操作要么都執(zhí)行,要么都不執(zhí)行,它是一個(gè)不可分割的工作單位。例如,銀行轉(zhuǎn)帳工作:從一個(gè)帳號(hào)扣款并使另一個(gè)帳號(hào)增款,這兩個(gè)操作要么都執(zhí)行,要么都不執(zhí)

數(shù)據(jù)庫 事務(wù)的特性ACID

事務(wù)(Transaction)是并發(fā)控制的基本單位。

所謂事務(wù),它是一個(gè)操作序列,這些操作要么都執(zhí)行,要么都不執(zhí)行,它是一個(gè)不可分割的工作單位。例如,銀行轉(zhuǎn)帳工作:從一個(gè)帳號(hào)扣款并使另一個(gè)帳號(hào)增款,這兩個(gè)操作要么都執(zhí)行,要么都不執(zhí)行。

數(shù)據(jù)庫事務(wù)必須具備ACID特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔離性)和Durability(持久性)的英文縮寫。

原子性:指整個(gè)數(shù)據(jù)庫事務(wù)是不可分割的工作單位。只有使據(jù)庫中所有的操作執(zhí)行成功,才算整個(gè)事務(wù)成功;事務(wù)中任何一個(gè)SQL語句執(zhí)行失敗,那么已經(jīng)執(zhí)行成功的SQL語句也必須撤銷,數(shù)據(jù)庫狀態(tài)應(yīng)該退回到執(zhí)行事務(wù)前的狀態(tài)。

一致性:指數(shù)據(jù)庫事務(wù)不能破壞關(guān)系數(shù)據(jù)的完整性以及業(yè)務(wù)邏輯上的一致性。例如對銀行轉(zhuǎn)帳事務(wù),不管事務(wù)成功還是失敗,應(yīng)該保證事務(wù)結(jié)束后ACCOUNTS表中Tom和Jack的存款總額為2000元。

隔離性:指的是在并發(fā)環(huán)境中,當(dāng)不同的事務(wù)同時(shí)操縱相同的數(shù)據(jù)時(shí),每個(gè)事務(wù)都有各自的完整數(shù)據(jù)空間。由并發(fā)事務(wù)所做的修改必須與任何其他并發(fā)事務(wù)所做的修改隔離。事務(wù)查看數(shù)據(jù)更新時(shí),數(shù)據(jù)所處的狀態(tài)要么是另一事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì)查看到中間狀態(tài)的數(shù)據(jù)。

持久性:指的是只要事務(wù)成功結(jié)束,它對數(shù)據(jù)庫所做的更新就必須永久保存下來。即使發(fā)生系統(tǒng)崩潰,重新啟動(dòng)數(shù)據(jù)庫系統(tǒng)后,數(shù)據(jù)庫還能恢復(fù)到事務(wù)成功結(jié)束時(shí)的狀態(tài)。

事務(wù)的(ACID)特性是由關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS,數(shù)據(jù)庫系統(tǒng))來實(shí)現(xiàn)的。數(shù)據(jù)庫管理系統(tǒng)采用日志來保證事務(wù)的原子性、一致性和持久性。日志記錄了事務(wù)對數(shù)據(jù)庫所做的更新,如果某個(gè)事務(wù)在執(zhí)行過程中發(fā)生錯(cuò)誤,就可以根據(jù)日志,撤銷事務(wù)對數(shù)據(jù)庫已做的更新,使數(shù)據(jù)庫退回到執(zhí)行事務(wù)前的初始狀態(tài)。

數(shù)據(jù)庫管理系統(tǒng)采用鎖機(jī)制來實(shí)現(xiàn)事務(wù)的隔離性。當(dāng)多個(gè)事務(wù)同時(shí)更新數(shù)據(jù)庫中相同的數(shù)據(jù)時(shí),只允許持有鎖的事務(wù)能更新該數(shù)據(jù),其他事務(wù)必須等待,直到前一個(gè)事務(wù)釋放了鎖,其他事務(wù)才有機(jī)會(huì)更新該數(shù)據(jù)。

MySql事務(wù)應(yīng)用

事務(wù)的特征:

Atomicity(原子性)

Consistency(穩(wěn)定性,一致性)

Isolation(隔離性)

Durability(可靠性)

注意:事務(wù)只針對對數(shù)據(jù)數(shù)據(jù)產(chǎn)生影響的語句有效。

show engines //查看mysql鎖支持的數(shù)據(jù)引擎。

MyISAM不支持事物,InnoDB支持事物。

默認(rèn)情況下,MySQL將以自動(dòng)提交模式運(yùn)行,這意味著沒一條小命令都將當(dāng)做一個(gè)只有一條命令的事物來執(zhí)行。

如果要讓mysql支持支持事務(wù),只需要修改數(shù)據(jù)引擎(alter table person type=INNODB)。

使用start transaction或者begin命令來開啟一個(gè)事物,使用commit,或者rollback來結(jié)束事物。

事物的結(jié)束:事物除了commit,rollback會(huì)結(jié)束外,使用DDL或者DCL語句也會(huì)結(jié)束。

保存點(diǎn):通過保存點(diǎn)機(jī)制:用戶可以在事物里用savepoint name命令設(shè)置一些保存點(diǎn),以后用戶在使用rollback to savepoint name結(jié)束事物時(shí),name之前的數(shù)據(jù)保存,之后的數(shù)據(jù)不保存。

mysql使用事務(wù)的關(guān)鍵字

begin //打開一個(gè)事務(wù)。

commit //提交到數(shù)據(jù)庫。

rollback //取消操作。

savepoint //保存,部分取消,部分提交。

alter table person type=INNODB //修改數(shù)據(jù)引擎。

示例:

begin

update person set name='efgh' where id =10

select * from person

rollback

select * from person

示例:

alter table person type=INNODB

begin

update person set name='efgh' where id =10

select * from person

commit

select * from person

begin

delete from person where id=21

update person set name='efgh' where id =10

commit/rollback

針對上面部分提交,必須用到保存點(diǎn)。

事務(wù)保存點(diǎn)注意:

1.只能取消到某個(gè)保存點(diǎn) rollback to savepoint p1。

2.不能提交某個(gè)保存 commit to savepoint p2//錯(cuò)誤寫法。

3.最后commit 把未取消的保存點(diǎn)去不提交到數(shù)據(jù)。

事務(wù)保存點(diǎn)使用例子:

begin;

update score set score=40 where scoreid=1;

savepoint s1;

update score set score=50 where scoreid=2;

select * from score;

rollback to savepoint s1;

select * from score;

commit;

關(guān)于MySQL事務(wù)的操作就介紹到這里,如果您想了解更多關(guān)于MySQL數(shù)據(jù)庫的知識(shí),可以看一下這里的文章:http://database.51cto.com/mysql/,相信一定不會(huì)讓大家失望的!

本條技術(shù)文章來源于互聯(lián)網(wǎng),如果無意侵犯您的權(quán)益請點(diǎn)擊此處反饋版權(quán)投訴

本文系統(tǒng)來源:php中文網(wǎng)

總結(jié)

以上是生活随笔為你收集整理的mysql事物 总结_Mysql事务总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。