最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql?事務(wù)解析

 更新時(shí)間:2021年11月24日 08:47:04   作者:my_journey  
這篇文章主要給大家分享的是mysql事務(wù)解析,事務(wù)(transaction)是業(yè)務(wù)邏輯的一個(gè)基本的單元組成,下面文章圍繞mysql事務(wù)的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的朋友可以參考一下希望對(duì)大家有所幫助

事務(wù)(transaction)

事務(wù)是業(yè)務(wù)邏輯的一個(gè)基本的單元組成。

每一個(gè)事務(wù)由一條條sql語(yǔ)句組成。

和事務(wù)相關(guān)的語(yǔ)句(insert,delete,update)這些DML語(yǔ)句

事務(wù)的存在保證了數(shù)據(jù)的安全性。

事務(wù)機(jī)制:

每一次執(zhí)行DML語(yǔ)句都會(huì)記錄操作,但不會(huì)修改數(shù)據(jù),等到所有DML執(zhí)行,

最后提交事務(wù)(刪除記錄,修改硬盤(pán)數(shù)據(jù))或者回滾事務(wù)(刪除記錄,不修改數(shù)據(jù))。

事務(wù)由四大特性:ACID

  • A:原子性,事務(wù)是最小的工作單元
  • C:一致性,事務(wù)中的DML語(yǔ)句要么都執(zhí)行成功,要么都失敗
  • I:隔離性,事務(wù)與事務(wù)之間隔離。
  • D:持久性,最后數(shù)據(jù)持久化到硬盤(pán),才會(huì)結(jié)束

事務(wù)的隔離級(jí)別:

1.讀未提交(read uncommitted),表示一個(gè)事務(wù)可以讀取到另一個(gè)事務(wù)沒(méi)有提交的數(shù)據(jù)

這種級(jí)別存在臟讀現(xiàn)象

2.讀以提交(read committed),可以讀取到已經(jīng)提交的數(shù)據(jù)

這種級(jí)別解決了臟讀現(xiàn)象,但是不可以重復(fù)讀

3.可重復(fù)讀(repeatable read),事務(wù)讀取的數(shù)據(jù),與其他事務(wù)提交數(shù)據(jù)無(wú)關(guān),可以重復(fù)讀取,事務(wù)開(kāi)始的數(shù)據(jù)。

解決了不可重復(fù)讀現(xiàn)象,但是存在幻讀,讀取到的數(shù)據(jù)不真實(shí)。

4.序列化讀/串行化讀。解決了所有問(wèn)題,和多線程里面的線程安全相似。但是存在效率低下。因?yàn)槭聞?wù)需要排隊(duì)。

mysql數(shù)據(jù)庫(kù)默認(rèn)的隔離級(jí)別是第三級(jí)別。可重復(fù)讀。

mysql事務(wù)默認(rèn)自動(dòng)提交。執(zhí)行一條DML直接修改硬盤(pán)上的數(shù)據(jù)。

想要手動(dòng)提交事務(wù)。在執(zhí)行DML之前。先start transaction;然后執(zhí)行DML,最后提交或者回滾。

演示手動(dòng)回滾事務(wù):

drop table if exists t_user1;

create table t_user1(

id int(3) primary key auto_increment,

username varchar(10)

);

mysql> create table t_user1(

-> id int(3) primary key auto_increment,

-> username varchar(10)

-> );

Query OK, 0 rows affected (0.02 sec)

mysql> insert into t_user1(username) values('h1');

Query OK, 1 row affected (0.01 sec)

mysql> select * from t_user1;

+----+----------+

| id | username |

+----+----------+

| 1 | h1 |

+----+----------+

1 row in set (0.00 sec)

mysql> rollback;//回滾事務(wù)

Query OK, 0 rows affected (0.00 sec)

mysql> select * from t_user1;//回滾之后還是和之前一樣,因?yàn)閙yql自動(dòng)提交了

+----+----------+

| id | username |

+----+----------+

| 1 | h1 |

+----+----------+

1 row in set (0.00 sec)

mysql> start transaction;//手動(dòng)開(kāi)啟事務(wù),關(guān)閉事務(wù)自動(dòng)提交

Query OK, 0 rows affected (0.00 sec)

mysql> insert into t_user1(username) values('h2');

Query OK, 1 row affected (0.01 sec)

mysql> insert into t_user1(username) values('h3');

Query OK, 1 row affected (0.00 sec)

mysql> insert into t_user1(username) values('h4');

Query OK, 1 row affected (0.00 sec)

mysql> select * from t_user1;

+----+----------+

| id | username |

+----+----------+

| 1 | h1 |

| 2 | h2 |

| 3 | h3 |

| 4 | h4 |

+----+----------+

4 rows in set (0.00 sec)

mysql> rollback;//回滾

Query OK, 0 rows affected (0.01 sec)

mysql> select * from t_user1;

+----+----------+

| id | username | 最后硬盤(pán)上的數(shù)據(jù)還是和之前一樣。

+----+----------+ 回滾刪除記錄,不修改硬盤(pán)上的數(shù)據(jù)。

| 1 | h1 |

+----+----------+

1 row in set (0.00 sec)

到此這篇關(guān)于mysql 事務(wù)解析的文章就介紹到這了,更多相關(guān)mysql 事務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Ubuntu安裝Mysql+啟用遠(yuǎn)程連接的完整過(guò)程

    Ubuntu安裝Mysql+啟用遠(yuǎn)程連接的完整過(guò)程

    這篇文章主要介紹了Ubuntu如何安裝Mysql+啟用遠(yuǎn)程連接,用ssh客戶端或者云服務(wù)器廠家提供的網(wǎng)頁(yè)版控制臺(tái)都行,只要你能連上服務(wù)器就行,需要的朋友可以參考下
    2022-06-06
  • MySQL execute、executeUpdate、executeQuery三者的區(qū)別

    MySQL execute、executeUpdate、executeQuery三者的區(qū)別

    這篇文章主要介紹了MySQL execute、executeUpdate、executeQuery三者的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • MySql8設(shè)置遠(yuǎn)程連接的實(shí)戰(zhàn)記錄

    MySql8設(shè)置遠(yuǎn)程連接的實(shí)戰(zhàn)記錄

    與SQL Server類(lèi)似,MySQL在需要遠(yuǎn)程操縱其他電腦時(shí),也需要對(duì)其做遠(yuǎn)程連接的相應(yīng)設(shè)置,下面這篇文章主要給大家介紹了關(guān)于MySql8設(shè)置遠(yuǎn)程連接的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 深入分析MySQL數(shù)據(jù)類(lèi)型 DECIMAL

    深入分析MySQL數(shù)據(jù)類(lèi)型 DECIMAL

    這篇文章主要介紹了MySQL數(shù)據(jù)類(lèi)型 DECIMAL的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • 詳解mysql 獲取當(dāng)前日期及格式化

    詳解mysql 獲取當(dāng)前日期及格式化

    本篇文章主要介紹了mysql 獲取當(dāng)前日期及格式化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • mysql用戶管理和權(quán)限設(shè)置方式

    mysql用戶管理和權(quán)限設(shè)置方式

    這篇文章主要介紹了mysql用戶管理和權(quán)限設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MySQL的子查詢中FROM和EXISTS子句的使用教程

    MySQL的子查詢中FROM和EXISTS子句的使用教程

    這篇文章主要介紹了MySQL的子查詢中FROM和EXISTS子句的使用教程,子查詢是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-12-12
  • MySQL5.7完全卸載步驟詳解

    MySQL5.7完全卸載步驟詳解

    這篇文章主要介紹了MySQL5.7完全卸載的詳細(xì)步驟以及把中間遇到的問(wèn)題做了分析,需要的朋友跟著操作下吧。
    2018-02-02
  • Linux下安裝mysql-5.6.4 的圖文教程

    Linux下安裝mysql-5.6.4 的圖文教程

    在開(kāi)始安裝前,先說(shuō)明一下mysql-5.6.4與較低的版本在安裝上的區(qū)別,從mysql-5.5起,mysql源碼安裝開(kāi)始使用cmake了,因此當(dāng)我們配置安裝目錄./configure --perfix=/.....的時(shí)候和以前的會(huì)有些區(qū)別,這點(diǎn)我們稍后會(huì)提到
    2013-06-06
  • MySQL如何判斷字符串為NULL或者為空字符串

    MySQL如何判斷字符串為NULL或者為空字符串

    這篇文章主要介紹了MySQL如何判斷字符串為NULL或者為空字符串,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論

鄯善县| 黄石市| 大冶市| 博罗县| 雷波县| 上犹县| 福鼎市| 常州市| 鄂托克旗| 平泉县| 黄大仙区| 綦江县| 全南县| 张掖市| 新野县| 长兴县| 新晃| 湘潭市| 武平县| 宾川县| 岱山县| 丽江市| 将乐县| 哈巴河县| 万盛区| 绥棱县| 剑河县| 包头市| 云安县| 新竹县| 南京市| 贞丰县| 视频| 东乌珠穆沁旗| 扬州市| 兴安县| 美姑县| 边坝县| 兰坪| 商都县| 松原市|