婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Mysql事務(wù)處理詳解

Mysql事務(wù)處理詳解

熱門標(biāo)簽:400電話申請(qǐng)什么好 電銷機(jī)器人價(jià)格多少錢一臺(tái) 龍圖酒吧地圖標(biāo)注 怎么申請(qǐng)400電話申請(qǐng) 百度地圖標(biāo)注地方備注 電話機(jī)器人免費(fèi)嗎 地圖標(biāo)注圖標(biāo)素材入駐 怎么辦理400電話呢 好搜地圖標(biāo)注

一、Mysql事務(wù)概念

 MySQL 事務(wù)主要用于處理操作量大,復(fù)雜度高的數(shù)據(jù)。由一步或幾步數(shù)據(jù)庫(kù)操作序列組成邏輯執(zhí)行單元,這系列操作要么全部執(zhí)行,要么全部放棄執(zhí)行。在 MySQL 中只有使用了 Innodb 數(shù)據(jù)庫(kù)引擎的數(shù)據(jù)庫(kù)或表才支持事務(wù)。事務(wù)用來(lái)管理 insert,update,delete 語(yǔ)句。

二、事務(wù)特性:Atomicity(原子性)、Consistency(穩(wěn)定性,一致性)、隔離性(Isolation)和Durability(持續(xù)性,可靠性)。這四個(gè)特性也簡(jiǎn)稱ACID性。

  1.原子性:事務(wù)是應(yīng)用中最小的執(zhí)行單位,就如原子是自然界最小顆粒,具有不可再分的特征一樣。事務(wù)是應(yīng)用中不可再分的最小邏輯執(zhí)行體,一組事務(wù),要么成功;要么撤回。

  2.穩(wěn)定性,一致性:事務(wù)執(zhí)行的結(jié)果,必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài),變到另一個(gè)一致性狀態(tài)。當(dāng)數(shù)據(jù)庫(kù)中只包含事務(wù)成功提交的結(jié)果時(shí),數(shù)據(jù)庫(kù)處于一致性狀態(tài)。一致性是通過(guò)原子性來(lái)保證的。有非法數(shù)據(jù)(外鍵約束之類),事務(wù)撤回。

  3.隔離性:各個(gè)事務(wù)的執(zhí)行互不干擾,任意一個(gè)事務(wù)的內(nèi)部操作對(duì)其他并發(fā)的事務(wù),都是隔離的。也就是說(shuō):并發(fā)執(zhí)行的事務(wù)之間不能看到對(duì)方的中間狀態(tài),并發(fā)執(zhí)行的事務(wù)之間不能相互影響。事務(wù)獨(dú)立運(yùn)行。一個(gè)事務(wù)處理后的結(jié)果,影響了其他事務(wù),那么其他事務(wù)會(huì)撤回。事務(wù)的100%隔離,需要犧牲速度。

  4.持續(xù)性,可靠性:持續(xù)性也稱為持久性,指事務(wù)一旦提交,對(duì)數(shù)據(jù)所做的任何改變,都要記錄到永久存儲(chǔ)器中,通常是保存進(jìn)物理數(shù)據(jù)庫(kù)。軟、硬件崩潰后,InnoDB數(shù)據(jù)表驅(qū)動(dòng)會(huì)利用日志文件重構(gòu)修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit 選項(xiàng) 決定什么時(shí)候吧事務(wù)保存到日志里。

  注意事項(xiàng):存儲(chǔ)引擎MyISAM不支持事物,存儲(chǔ)引擎InnoDB支持事物。事務(wù)只針對(duì)對(duì)數(shù)據(jù)數(shù)據(jù)產(chǎn)生影響的語(yǔ)句有效。show engines 查看mysql鎖支持的數(shù)據(jù)引擎。

三、讀取數(shù)據(jù)概念

  1.臟讀(Dirty Reads):所謂臟讀就是對(duì)臟數(shù)據(jù)的讀取,而臟數(shù)據(jù)所指的就是未提交的數(shù)據(jù)。一個(gè)事務(wù)正在對(duì)一條記錄做修改,在這個(gè)事務(wù)完成并提交之前,這條數(shù)據(jù)是處于待定狀態(tài)的(可能提交也可能回滾),這時(shí),第二個(gè)事務(wù)來(lái)讀取這條沒(méi)有提交的數(shù)據(jù),并據(jù)此做進(jìn)一步的處理,就會(huì)產(chǎn)生未提交的數(shù)據(jù)依賴關(guān)系。這種現(xiàn)象被稱為臟讀。

  2.不可重復(fù)讀(Non-Repeatable Reads):一個(gè)事務(wù)先后讀取同一條記錄,但兩次讀取的數(shù)據(jù)不同,我們稱之為不可重復(fù)讀。也就是說(shuō),這個(gè)事務(wù)在兩次讀取之間該數(shù)據(jù)被其它事務(wù)所修改。

  3.幻讀(Phantom Reads):一個(gè)事務(wù)按相同的查詢條件重新讀取以前檢索過(guò)的數(shù)據(jù),卻發(fā)現(xiàn)其他事務(wù)插入了滿足其查詢條件的新數(shù)據(jù),這種現(xiàn)象就稱為幻讀。

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

  修改事務(wù)隔離級(jí)別語(yǔ)法:
  SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

  1、Read Uncommitted(未授權(quán)讀取、讀未提交):這是最低的隔離等級(jí),允許其他事務(wù)看到?jīng)]有提交的數(shù)據(jù)。這種等級(jí)會(huì)導(dǎo)致臟讀。如果一個(gè)事務(wù)已經(jīng)開(kāi)始寫數(shù)據(jù),則另外一個(gè)事務(wù)則不允許同時(shí)進(jìn)行寫操作,但允許其他事務(wù)讀此行數(shù)據(jù)。該隔離級(jí)別可以通過(guò)“排他寫鎖”實(shí)現(xiàn)。避免了更新丟失,卻可能出現(xiàn)臟讀。也就是說(shuō)事務(wù)B讀取到了事務(wù)A未提交的數(shù)據(jù)。SELECT語(yǔ)句以非鎖定方式被執(zhí)行,所以有可能讀到臟數(shù)據(jù),隔離級(jí)別最低。

SET session transaction isolation level read uncommitted ;
SET global transaction isolation level read uncommitted;/*全局建議不用*/
SELECT @@global.tx_isolation;
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;

  新建一個(gè)簡(jiǎn)單的student表,設(shè)置id和name,num字段,開(kāi)啟事務(wù)1對(duì)表新增通過(guò)存儲(chǔ)過(guò)程,事務(wù)不提交,查看當(dāng)前數(shù)據(jù)庫(kù)事務(wù)狀態(tài),可以看到一條數(shù)據(jù)事務(wù),事務(wù)級(jí)別為READ UNCOMMITTED:

drop table if exists student;
create table student(
id int primary key auto_increment comment 'id',
name varchar(100) comment '名稱',
num int
);
drop procedure if exists proc_on_sw;
delimiter ;;
create procedure proc_on_sw()
begin
start transaction;
insert into student(name,num) value('aaa',1);
select * from information_schema.INNODB_TRX;
end
;;
delimiter ;;
call proc_on_sw();

  新建事務(wù)2,查詢student表,我們?cè)赗EAD UNCOMMITTED級(jí)別下,可以看到其他事務(wù)未提交的數(shù)據(jù):再去查看數(shù)據(jù)庫(kù)事務(wù)狀態(tài),我們會(huì)看到狀態(tài)正常。

start transaction ;
select * from student;
commit;
select * from information_schema.INNODB_TRX;

  2.Read Committed(授權(quán)讀取、讀提交):讀取數(shù)據(jù)的事務(wù)允許其他事務(wù)繼續(xù)訪問(wèn)該行數(shù)據(jù),但是未提交的寫事務(wù)將會(huì)禁止其他事務(wù)訪問(wèn)該行。該隔離級(jí)別避免了臟讀,但是卻可能出現(xiàn)不可重復(fù)讀。事務(wù)A事先讀取了數(shù)據(jù),事務(wù)B緊接了更新了數(shù)據(jù),并提交了事務(wù),而事務(wù)A再次讀取該數(shù)據(jù)時(shí),數(shù)據(jù)已經(jīng)發(fā)生了改變。

SET session transaction isolation level read committed ;
SET global transaction isolation level read committed; /*全局建議不用*/

drop procedure if exists proc_on_up;
delimiter ;;
create procedure proc_on_up()
begin
set autocommit=0;
update student set name='cc' where id=1;
commit;
set autocommit=1;
end
;;
delimiter ;;
call proc_on_up();
select * from student;


  3.repeatable read(可重復(fù)讀取):就是在開(kāi)始讀取數(shù)據(jù)(事務(wù)開(kāi)啟)時(shí),不再允許修改操作,事務(wù)開(kāi)啟,不允許其他事務(wù)的UPDATE修改操作,不可重復(fù)讀對(duì)應(yīng)的是修改,即UPDATE操作。但是可能還會(huì)有幻讀問(wèn)題。因?yàn)榛米x問(wèn)題對(duì)應(yīng)的是插入INSERT操作,而不是UPDATE操作。避免了不可重復(fù)讀取和臟讀,但是有時(shí)可能出現(xiàn)幻讀。這可以通過(guò)“共享讀鎖”和“排他寫鎖”實(shí)現(xiàn)。

set session transaction isolation level repeatable read;

  4.串行化、序列化:提供嚴(yán)格的事務(wù)隔離。它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,但不能并發(fā)執(zhí)行。如果僅僅通過(guò)“行級(jí)鎖”是無(wú)法實(shí)現(xiàn)事務(wù)序列化的,必須通過(guò)其他機(jī)制保證新插入的數(shù)據(jù)不會(huì)被剛執(zhí)行查詢操作的事務(wù)訪問(wèn)到。序列化是最高的事務(wù)隔離級(jí)別,同時(shí)代價(jià)也花費(fèi)最高,性能很低,一般很少使用,在該級(jí)別下,事務(wù)順序執(zhí)行,不僅可以避免臟讀、不可重復(fù)讀,還避免了幻像讀。

set session transaction isolation level serializable;

      隔離等級(jí)   臟讀   不可重復(fù)讀   幻讀
      讀未提交   YES   YES      YES
      讀已提交   NO    YES         YES
      可重復(fù)讀   NO    NO        YES
      串行化       NO    NO        NO

五、完整例子包括提交和回滾完整例子

drop procedure if exists pro_new;
delimiter;;
create procedure pro_new(out rtn int)
begin
declare err INT default 0;
-- 如果出現(xiàn)異常,會(huì)自動(dòng)處理并rollback
declare exit handler for sqlexception ROLLBACK ; 
-- 啟動(dòng)事務(wù)
set autocommit=0;
start transaction;
insert into student(name,num) values(NULL,2.3);
-- set err = @@IDENTITY; -- =  獲取上一次插入的自增ID;
set err =last_insert_id(); -- 獲取上一次插入的自增ID
insert into student(name,num) VALUEs('ccc',err);
-- 運(yùn)行沒(méi)有異常,提交事務(wù)
commit;
-- 設(shè)置返回值為1
set rtn=1;
set autocommit=1;
end
;;
delimiter ;;
set @n=1;
call pro_new(@n);
select @n;

您可能感興趣的文章:
  • 通過(guò)實(shí)例分析MySQL中的四種事務(wù)隔離級(jí)別
  • 解決Mysql收縮事務(wù)日志和日志文件過(guò)大無(wú)法收縮問(wèn)題
  • mysql的存儲(chǔ)過(guò)程、游標(biāo) 、事務(wù)實(shí)例詳解
  • PHP mysqli事務(wù)操作常用方法分析
  • Mysql事務(wù)操作失敗如何解決
  • MySQL四種事務(wù)隔離級(jí)別詳解
  • NodeJs使用Mysql模塊實(shí)現(xiàn)事務(wù)處理實(shí)例
  • MySQL數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別詳解
  • MySQL事務(wù)的基礎(chǔ)學(xué)習(xí)以及心得分享

標(biāo)簽:撫順 內(nèi)江 防疫工作 溫州 固原 汕尾 廣西 浙江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql事務(wù)處理詳解》,本文關(guān)鍵詞  Mysql,事務(wù)處理,詳解,Mysql,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql事務(wù)處理詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Mysql事務(wù)處理詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一二精品视频| 亚洲国产精品综合小说图片区| 91视频国产资源| 日韩中文字幕一区二区三区| 美女一区二区三区| 亚洲欧美区自拍先锋| 天堂av在线一区| 成人一区在线看| 在线观看欧美日本| 2023国产精华国产精品| 亚洲欧美怡红院| 老司机精品视频在线| bt7086福利一区国产| 日韩一区二区三区在线| 中文字幕一区二区在线播放| 污片在线观看一区二区| 亚洲高清免费视频| 国产一区福利在线| 欧美一区日韩一区| 精品成人在线观看| 亚洲国产视频a| 成人污视频在线观看| 欧美久久久久久久久久| 国产精品二三区| 国产一区二区精品久久| 欧美性高清videossexo| 国产精品久久久久久久久久久免费看| 日韩国产欧美三级| 色婷婷一区二区| 国产精品国产三级国产a| 日本一区二区三区电影| 美女性感视频久久| 欧美另类变人与禽xxxxx| 亚洲精品水蜜桃| 成人午夜电影小说| 久久久久国产精品麻豆| 国产日韩欧美一区二区三区综合| 日韩黄色在线观看| 欧美精品久久久久久久多人混战| 亚洲欧洲性图库| 亚洲午夜久久久| 在线观看亚洲一区| 亚洲成人综合视频| 91浏览器打开| 依依成人精品视频| 欧美日本韩国一区| 日韩激情一区二区| 日韩欧美国产精品| 国内久久精品视频| 国产欧美精品日韩区二区麻豆天美| 精品一区二区三区免费视频| 日韩视频在线永久播放| 黑人精品欧美一区二区蜜桃 | 五月婷婷综合在线| 色综合久久综合网| 亚洲成在人线在线播放| 制服视频三区第一页精品| 免费观看久久久4p| 欧美大片在线观看一区二区| 久久久蜜桃精品| 国产酒店精品激情| 成人免费在线视频观看| 欧美综合一区二区三区| 日韩精品福利网| 久久久噜噜噜久久中文字幕色伊伊| 日本不卡高清视频| 国产人妖乱国产精品人妖| 菠萝蜜视频在线观看一区| 一区二区三区加勒比av| 欧美一卡二卡三卡四卡| 亚洲国产高清在线| 91福利国产精品| 国产在线精品一区二区不卡了| 中文字幕亚洲区| 欧美一卡二卡在线观看| 成人免费视频一区| 天天影视涩香欲综合网| 久久久精品2019中文字幕之3| 91丝袜高跟美女视频| 麻豆成人综合网| 亚洲精品欧美在线| 日韩午夜中文字幕| 99精品欧美一区二区蜜桃免费| 五月婷婷色综合| 日本一区二区高清| 欧美一区三区四区| 色呦呦国产精品| 一区二区三区.www| 久久久美女艺术照精彩视频福利播放| 色老头久久综合| 国产精品一区专区| 免费观看在线色综合| 一级做a爱片久久| 精一区二区三区| 国产精品网曝门| 6080yy午夜一二三区久久| 国内精品第一页| 日韩精品一二区| 亚洲小说春色综合另类电影| 欧美videofree性高清杂交| 欧美影院一区二区三区| 蜜臀久久99精品久久久画质超高清 | 在线观看视频91| 国产精品亚洲视频| 久久99国产精品久久99| 丝瓜av网站精品一区二区| 91精品国产色综合久久久蜜香臀| 一本色道综合亚洲| 91视频你懂的| 97精品国产露脸对白| 国产成人啪午夜精品网站男同| 国产精品亚洲专一区二区三区 | 亚洲主播在线播放| 中文字幕一区三区| 国产精品水嫩水嫩| 日本一区二区三区免费乱视频 | 久久婷婷成人综合色| 欧美日韩电影在线| 7799精品视频| 麻豆精品久久久| 婷婷中文字幕综合| 欧美欧美午夜aⅴ在线观看| 色综合天天狠狠| 亚洲r级在线视频| 国产嫩草影院久久久久| heyzo一本久久综合| 成人免费看的视频| av一区二区三区在线| 日韩高清不卡一区二区三区| 亚洲高清不卡在线观看| 亚洲婷婷国产精品电影人久久| 欧美韩国日本综合| 久久97超碰色| 欧美午夜精品理论片a级按摩| 国产精品久99| 成人久久视频在线观看| 26uuu色噜噜精品一区| 青青草原综合久久大伊人精品| 在线亚洲欧美专区二区| 亚洲欧美色图小说| 99久久精品情趣| 中文字幕在线不卡| 国产不卡在线一区| 中文一区在线播放| 成人黄色电影在线| 中文字幕一区二区在线观看| 成人精品在线视频观看| 国产精品美日韩| 99久久久久免费精品国产 | 一区二区三区产品免费精品久久75| 国产69精品久久99不卡| 国产欧美视频在线观看| 国v精品久久久网| 欧美国产一区视频在线观看| 国产成人午夜片在线观看高清观看| 久久久噜噜噜久久中文字幕色伊伊| 国产乱色国产精品免费视频| 国产精品美女久久福利网站| 91小视频在线观看| 亚洲国产一二三| 欧美精品在线观看一区二区| 久久精品噜噜噜成人88aⅴ| 精品卡一卡二卡三卡四在线| 国产成人精品一区二区三区网站观看| 欧美激情在线看| 欧美婷婷六月丁香综合色| 免费人成精品欧美精品| 精品久久久三级丝袜| 菠萝蜜视频在线观看一区| 亚洲自拍偷拍麻豆| 亚洲精品一区二区三区蜜桃下载 | 经典三级在线一区| 国产精品久久久久久户外露出| 91蜜桃在线观看| 青青草伊人久久| 国产精品久久久久天堂| 青青草成人在线观看| 国产日韩欧美一区二区三区乱码 | av亚洲精华国产精华| 亚洲高清免费一级二级三级| 精品国产一区久久| 91丨porny丨国产| 日韩电影在线观看电影| 中文字幕不卡在线播放| 欧美日韩大陆在线| 国产91富婆露脸刺激对白| 亚洲一区二区三区美女| 国产喂奶挤奶一区二区三区| 色妞www精品视频| 韩国一区二区三区| 日韩精品欧美精品| 专区另类欧美日韩| www亚洲一区| 欧美日韩情趣电影| 99re成人在线| 国产做a爰片久久毛片| 偷拍一区二区三区| 亚洲精品日韩专区silk| 中文字幕日韩精品一区| 久久久久免费观看|