中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

wordpress .mo .po撫州網(wǎng)站seo

wordpress .mo .po,撫州網(wǎng)站seo,菠菜網(wǎng)站開發(fā),微信公眾號(hào)php網(wǎng)站開發(fā)目錄 前言 一、事務(wù)的特性 (一)原子性 (二)一致性 (三)隔離性 (四)持久性 二、事務(wù)的控制語句 三、事務(wù)隔離級(jí)別 (一)讀未提交 (二&…

目錄

前言

一、事務(wù)的特性

(一)原子性

(二)一致性

(三)隔離性

(四)持久性

二、事務(wù)的控制語句

三、事務(wù)隔離級(jí)別

(一)讀未提交

(二)讀已提交

(三)可重復(fù)讀

(四)可序列化

四、使用場景

五、事務(wù)操作

(一)開啟事務(wù)

(二)提交事務(wù)

(三)回滾事務(wù)

(四)示例

六、自動(dòng)提交模式

七、隱式提交

八、提交前的保存點(diǎn)

九、注意事項(xiàng)

十、總結(jié)


前言

MySQL 中的事務(wù)是數(shù)據(jù)庫管理系統(tǒng)中用來確保多個(gè) SQL 操作以原子性的方式執(zhí)行的機(jī)制。事務(wù)可以保證一系列操作要么全部成功,要么全部失敗,從而保證數(shù)據(jù)庫的一致性和完整性。


一、事務(wù)的特性

事務(wù)具有四個(gè)重要的屬性,簡稱 ACID

(一)原子性

事務(wù)中的所有操作要么全部成功,要么全部回滾到事務(wù)開始前的狀態(tài)。如果事務(wù)中任何一個(gè)操作失敗,整個(gè)事務(wù)都會(huì)回滾。

(二)一致性

事務(wù)的執(zhí)行不會(huì)破壞數(shù)據(jù)庫的一致性約束。即事務(wù)執(zhí)行前后,數(shù)據(jù)庫都應(yīng)該處于一致的狀態(tài)。

(三)隔離性

每個(gè)事務(wù)的操作在未提交之前,對其他事務(wù)是不可見的。事務(wù)相互獨(dú)立,即使并發(fā)執(zhí)行時(shí),事務(wù)的執(zhí)行結(jié)果與按順序執(zhí)行的結(jié)果應(yīng)當(dāng)一致。MySQL 通過不同的隔離級(jí)別來控制事務(wù)的并發(fā)執(zhí)行行為。

(四)持久性

一旦事務(wù)提交,數(shù)據(jù)庫中的數(shù)據(jù)就會(huì)被永久保存,即使系統(tǒng)崩潰,事務(wù)提交的結(jié)果也不會(huì)丟失。

二、事務(wù)的控制語句

控制語句主要有以下幾種:

  • START TRANSACTIONBEGIN:顯式開啟一個(gè)事務(wù)。

  • COMMIT:提交事務(wù),表示事務(wù)中的所有操作成功執(zhí)行。

  • ROLLBACK:回滾事務(wù),將數(shù)據(jù)庫狀態(tài)恢復(fù)到事務(wù)開始之前。

  • SAVEPOINT:設(shè)置一個(gè)保存點(diǎn),以便在回滾時(shí)可以部分回滾到某個(gè)點(diǎn)。

  • RELEASE SAVEPOINT:刪除保存點(diǎn)。

  • SET TRANSACTION:設(shè)置事務(wù)的隔離級(jí)別。

三、事務(wù)隔離級(jí)別

MySQL 支持四種事務(wù)隔離級(jí)別,每種級(jí)別對并發(fā)控制的嚴(yán)格程度不同:

(一)讀未提交

事務(wù)可以讀取其他事務(wù)未提交的數(shù)據(jù),容易導(dǎo)致臟讀的問題。

(二)讀已提交

事務(wù)只能讀取其他事務(wù)已經(jīng)提交的數(shù)據(jù),避免了臟讀問題,但可能出現(xiàn)不可重復(fù)讀。

(三)可重復(fù)讀

事務(wù)執(zhí)行期間,即使其他事務(wù)修改了數(shù)據(jù),當(dāng)前事務(wù)依然只能看到執(zhí)行時(shí)的快照,避免了不可重復(fù)讀問題。MySQL 的默認(rèn)隔離級(jí)別是可重復(fù)讀,同時(shí)通過間隙鎖機(jī)制來防止幻讀

(四)可序列化

最嚴(yán)格的隔離級(jí)別,所有事務(wù)串行化執(zhí)行,完全避免了臟讀、不可重復(fù)讀和幻讀,但并發(fā)性能較差。?

四、使用場景

事務(wù)通常用于涉及多表操作、轉(zhuǎn)賬系統(tǒng)等需要保證數(shù)據(jù)一致性的場景,例如:

  • 銀行轉(zhuǎn)賬:從一個(gè)賬戶扣錢,并往另一個(gè)賬戶加錢,這兩個(gè)操作必須作為一個(gè)原子操作執(zhí)行,任何一個(gè)操作失敗,整個(gè)事務(wù)都必須回滾。

  • 訂單處理:生成訂單時(shí),可能涉及多個(gè)表的寫操作,比如庫存減少、賬戶扣款、訂單創(chuàng)建等,這些操作需要作為一個(gè)事務(wù)處理。

五、事務(wù)操作

事務(wù)的開啟和提交涉及到控制事務(wù)的生命周期。通過顯式開啟事務(wù),并在事務(wù)內(nèi)執(zhí)行多個(gè)操作,可以確保這些操作要么全部執(zhí)行成功并提交,要么在失敗時(shí)回滾所有操作。

(一)開啟事務(wù)

MySQL 中,可以通過 START TRANSACTIONBEGIN 語句顯式開啟一個(gè)事務(wù)。開啟事務(wù)后,執(zhí)行的 SQL 操作會(huì)被暫時(shí)保留,直到提交或回滾。

START TRANSACTION這是標(biāo)準(zhǔn)的 SQL 語法,用于啟動(dòng)一個(gè)新的事務(wù)。

START TRANSACTION;

BEGIN:MySQL 提供的簡寫形式,與 START TRANSACTION 等效,用于開啟事務(wù)。

BEGIN;

此時(shí),MySQL 開始記錄事務(wù)中的所有操作,直到你決定提交或回滾事務(wù)。

(二)提交事務(wù)

提交事務(wù)意味著將事務(wù)中的所有操作永久保存到數(shù)據(jù)庫中。使用 COMMIT 語句可以提交當(dāng)前事務(wù)。

COMMIT;

當(dāng)事務(wù)被提交后,所有的修改都會(huì)生效,并且這些修改會(huì)對其他事務(wù)可見。同時(shí),提交后事務(wù)就結(jié)束了,后續(xù)的操作會(huì)作為一個(gè)新的事務(wù)來處理。

(三)回滾事務(wù)

如果在事務(wù)過程中發(fā)生了錯(cuò)誤,或者你決定不保存這些操作的結(jié)果,可以使用 ROLLBACK 語句回滾事務(wù)?;貪L意味著撤銷事務(wù)中的所有操作,數(shù)據(jù)庫會(huì)恢復(fù)到事務(wù)開始之前的狀態(tài)。

ROLLBACK;

回滾操作通常用于防止因事務(wù)部分失敗而導(dǎo)致數(shù)據(jù)庫處于不一致狀態(tài)。

(四)示例

以下是一個(gè)典型的事務(wù)使用流程,演示如何開啟事務(wù)、執(zhí)行多條操作,并根據(jù)情況提交或回滾事務(wù)。

-- 1. 顯式開啟事務(wù)
START TRANSACTION;-- 2. 執(zhí)行多個(gè) SQL 操作
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;-- 3. 提交事務(wù)(保存所有更改)
COMMIT;-- 如果某個(gè)操作失敗,可以回滾整個(gè)事務(wù)
-- ROLLBACK;

六、自動(dòng)提交模式

默認(rèn)情況下,MySQL 處于自動(dòng)提交模式,這意味著每一條 SQL 語句都會(huì)自動(dòng)被作為一個(gè)獨(dú)立的事務(wù)執(zhí)行,并在執(zhí)行后立即提交。要顯式控制事務(wù),就需要暫時(shí)關(guān)閉自動(dòng)提交模式。

關(guān)閉自動(dòng)提交模式

可以通過設(shè)置 autocommit0 來關(guān)閉自動(dòng)提交:

SET autocommit = 0;

此時(shí),MySQL 將不會(huì)自動(dòng)提交操作,必須顯式通過 COMMITROLLBACK 來結(jié)束事務(wù)。

-- 手動(dòng)提交事務(wù)
COMMIT;-- 手動(dòng)回滾事務(wù)
ROLLBACK;

恢復(fù)自動(dòng)提交模式

在完成事務(wù)處理后,你可以將 autocommit 設(shè)置為 1,恢復(fù)默認(rèn)的自動(dòng)提交行為:

SET autocommit = 1;

七、隱式提交

某些 SQL 語句會(huì)導(dǎo)致事務(wù)隱式提交,即不需要顯式調(diào)用 COMMIT,事務(wù)會(huì)自動(dòng)提交。常見的隱式提交操作包括:

  • DDL 操作(如 CREATE, DROP, ALTER 等)會(huì)在執(zhí)行前自動(dòng)提交事務(wù),且在執(zhí)行后也會(huì)自動(dòng)提交。

示例:

-- 創(chuàng)建表之前,事務(wù)會(huì)自動(dòng)提交
CREATE TABLE new_table (id INT);

八、提交前的保存點(diǎn)

在事務(wù)中,可以通過 SAVEPOINT 設(shè)置一個(gè)保存點(diǎn),便于部分回滾事務(wù)。如果不想回滾整個(gè)事務(wù),可以使用保存點(diǎn)回滾到某個(gè)特定的點(diǎn)。

示例:

-- 開啟事務(wù)
START TRANSACTION;-- 設(shè)置保存點(diǎn)
SAVEPOINT sp1;-- 執(zhí)行一些操作
INSERT INTO orders (order_id, customer_id, total_amount) VALUES (1002, 1, 300);-- 回滾到保存點(diǎn) sp1
ROLLBACK TO sp1;-- 提交事務(wù)
COMMIT;

九、注意事項(xiàng)

事務(wù)的注意事項(xiàng)主要有以下幾點(diǎn):

  • 提交事務(wù)后,所有的更改將會(huì)永久保存,無法再通過 ROLLBACK 撤銷。

  • 自動(dòng)提交模式默認(rèn)開啟時(shí),每條 SQL 都是獨(dú)立事務(wù);關(guān)閉自動(dòng)提交后,必須手動(dòng)調(diào)用 COMMITROLLBACK 來結(jié)束事務(wù)。

  • 在分布式數(shù)據(jù)庫中或多個(gè)系統(tǒng)間的事務(wù)處理中,還可能涉及到分布式事務(wù),通過二階段提交(2PC)等機(jī)制來保證數(shù)據(jù)的一致性。

十、總結(jié)

  • 使用 START TRANSACTIONBEGIN 來顯式開啟事務(wù)。

  • 通過 COMMIT 提交事務(wù),永久保存修改。

  • 如果事務(wù)中發(fā)生了問題,可以通過 ROLLBACK 撤銷操作,恢復(fù)數(shù)據(jù)庫到事務(wù)開始前的狀態(tài)。

  • 在 MySQL 默認(rèn)的自動(dòng)提交模式下,所有操作會(huì)被自動(dòng)提交,如果需要手動(dòng)控制事務(wù),必須關(guān)閉自動(dòng)提交模式。

http://www.risenshineclean.com/news/49628.html

相關(guān)文章:

  • 微信引流推廣平臺(tái)青島百度推廣優(yōu)化怎么做的
  • 用前端做的比較酷的網(wǎng)站張家界seo
  • 好康的網(wǎng)站代碼邵陽疫情最新消息
  • 網(wǎng)站運(yùn)行維護(hù)方案免費(fèi)推廣網(wǎng)站大全下載
  • 惠州做網(wǎng)站電話深圳百度
  • wordpress 在線留言關(guān)鍵詞優(yōu)化工具
  • 人工智能 網(wǎng)站建設(shè)優(yōu)化設(shè)計(jì)答案六年級(jí)上冊
  • unity網(wǎng)絡(luò)游戲開發(fā)內(nèi)蒙古seo優(yōu)化
  • 網(wǎng)站平臺(tái)設(shè)計(jì)百度推廣怎么做最好
  • p2p網(wǎng)站建設(shè)小微金融南昌seo優(yōu)化
  • 通過社交網(wǎng)站來做招聘決定石家莊網(wǎng)絡(luò)推廣
  • 電子商務(wù)網(wǎng)站的建設(shè)收益好的網(wǎng)絡(luò)推廣平臺(tái)
  • 北京企業(yè)聚集西安優(yōu)化外
  • 網(wǎng)站 緩存方式全國前十名小程序開發(fā)公司
  • wordpress登錄cookiesseo排名優(yōu)化軟件價(jià)格
  • 馬大云湘潭網(wǎng)站優(yōu)化公司大家好
  • 佛山新網(wǎng)站建設(shè)方案網(wǎng)絡(luò)推廣如何收費(fèi)
  • 《電子商務(wù)網(wǎng)站建設(shè)》精品課關(guān)鍵詞檢索
  • 成都互聯(lián)網(wǎng)制作網(wǎng)站頁面優(yōu)化方案
  • 做網(wǎng)站的分辨率要多大百度怎么推廣自己的網(wǎng)站
  • app網(wǎng)站如何做推廣在百度怎么發(fā)布作品
  • 中國建設(shè)廳網(wǎng)站如何做電商
  • 網(wǎng)站改域名如何做百度優(yōu)化網(wǎng)頁優(yōu)化seo廣州
  • 浙江建設(shè)銀行官網(wǎng)站紀(jì)念幣seo和sem推廣
  • h5網(wǎng)站程序北京seo技術(shù)
  • 全國企業(yè)信用信息公示系統(tǒng)年報(bào)seo服務(wù)是什么意思
  • 購物網(wǎng)站建設(shè)seo網(wǎng)絡(luò)營銷案例分析
  • 政府網(wǎng)站建設(shè)招標(biāo)文件網(wǎng)頁制作與網(wǎng)站建設(shè)實(shí)戰(zhàn)教程
  • 手機(jī)微網(wǎng)站模板下載seo和sem推廣
  • 上海做家紡的公司網(wǎng)站成都百度推廣電話號(hào)碼是多少