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

深入理解MySQL事務(wù)特性與自動提交

 更新時間:2024年07月05日 10:00:05   作者:碼農(nóng)老張Zy  
事務(wù)以及事務(wù)隔離機制,其實是所有關(guān)系型數(shù)據(jù)庫都有的問題,本文主要介紹了深入理解MySQL事務(wù)特性與自動提交,具有一定的參考價值,感興趣的可以了解一下

又是比較偏基礎(chǔ)理論的一篇文章,不過這也是向 MySQL 更高水平進階的必經(jīng)之路。關(guān)于事務(wù)以及事務(wù)隔離機制,其實是所有關(guān)系型數(shù)據(jù)庫都有的問題,它是一套比較基礎(chǔ)的理論和工具。

事務(wù)特性

事務(wù)這個東西,想必不用我過多解釋大家也都清楚,這也是我們學(xué)習(xí)任何數(shù)據(jù)庫產(chǎn)品的必學(xué)知識。同時,對于事務(wù)來說,還有 ACID 四大特性,我們先來復(fù)習(xí)一下。

  • Atomicity 原子性,事務(wù)內(nèi)的操作,要么全成功,要么全失敗,失敗了就回滾,成功了就提交

  • Consistency 一致性,從一個一致性狀態(tài)變換到另一個一致性狀態(tài),比如有兩個人,帳號里一共有 100 塊,不管兩人怎么來回轉(zhuǎn)賬,最后的總和還是 100 塊

  • Isolation 隔離性,多個用戶同時操作數(shù)據(jù)時,一個用戶的操作不能被別的用戶影響

  • Durability 持久性,事務(wù)提交了,那么改變就是永久的

有了這四個特性的保證,我們就可以說事務(wù)是非常安全的操作。這個安全體現(xiàn)在什么地方呢?最典型的例子就是轉(zhuǎn)帳問題,A向B轉(zhuǎn)了100塊,首先我們扣除A帳戶里的錢,這時因為各種原因操作中斷了,B的帳戶沒有收到錢,這時候A少了100,B沒有增加,問題也就隨之產(chǎn)生了。事務(wù),主要解決的就是這類問題。

事務(wù)的自動提交

既然這么好,我們需要給所有操作都使用事務(wù)嗎?其實默認情況下 MySQL 是開啟了自動事務(wù)提交的,你的每一個操作語句都會是一個事務(wù)。注意,是每一個,而不是多個語句在同一個事務(wù)中。

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+

這個 autocommit 代表的就是自動提交事務(wù),我們可以關(guān)閉它,如果關(guān)閉它的話,則每條語句后面我們都需要 commit 一下?,F(xiàn)在我們開兩個命令行窗口,在第一個命令行窗口設(shè)置 autocommit 為 OFF 。

mysql> set session autocommit=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | OFF   |
+---------------+-------+

接著,修改一條數(shù)據(jù)。

mysql> update test_user set username='bbb' where id = 2200000;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

然后我們在另一個命令行窗口查看數(shù)據(jù),數(shù)據(jù)依然是原來的狀態(tài),用戶名沒有更改為 bbb 。這個時候,我們回到第一個命令行窗口,運行 commit 提交事務(wù)。此時,再回到另一個窗口查詢,就可以看到修改之后的數(shù)據(jù)了。

-- 客戶端2
mysql> select * from test_user where id = 2200000;
+---------+----------------------+------------------------------------------+------+---------------------+------------+--------+--------+
| id      | username             | password                                 | salt | created_at          | updated_at | status | gender |
+---------+----------------------+------------------------------------------+------+---------------------+------------+--------+--------+
| 2200000 | ebbf4060e7aa5d1099b8 | 741a7199e189eebba674736397fa49d727c11348 | 2067 | 2022-01-19 23:58:59 | 1630877171 |      4 |      1 |
+---------+----------------------+------------------------------------------+------+---------------------+------------+--------+--------+

-- 客戶端1
mysql> commit;
Query OK, 0 rows affected (0.00 sec)

-- 客戶端2
mysql> select * from test_user where id = 2200000;
+---------+----------------------+------------------------------------------+------+---------------------+------------+--------+--------+
| id      | username             | password                                 | salt | created_at          | updated_at | status | gender |
+---------+----------------------+------------------------------------------+------+---------------------+------------+--------+--------+
| 2200000 | bbb | 741a7199e189eebba674736397fa49d727c11348 | 2067 | 2022-01-19 23:58:59 | 1630877171 |      4 |      1 |
+---------+----------------------+------------------------------------------+------+---------------------+------------+--------+--------+

好吧,正常情況下我們其實還是保持自動提交比較好,真正需要事務(wù)的時候,直接 BEGIN 開啟,然后根據(jù)情況使用 COMMIT 或 ROLLBACK 就好了。

總結(jié)

今天的內(nèi)容我們就是簡單地回顧一下基礎(chǔ),同時再演示了一下關(guān)閉 MySQL 中的事務(wù)自動提交的效果。相信大家并不過癮,為啥呢?鼎鼎大名的事務(wù)隔離機制沒講呀,別急,這個我們放到后面再說,下一回,我們先說說事務(wù)中可能出現(xiàn)的問題,也是非常出名的三個問題,那就是:臟讀、幻讀、不可重復(fù)讀的問題。

到此這篇關(guān)于深入理解MySQL事務(wù)特性與自動提交的文章就介紹到這了,更多相關(guān)MySQL事務(wù)特性與自動提交內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • mysqldump加-w參數(shù)備份數(shù)據(jù)時需要注意的事項

    mysqldump加-w參數(shù)備份數(shù)據(jù)時需要注意的事項

    這篇文章主要介紹了mysqldump加-w參數(shù)備份數(shù)據(jù)時需要注意的事項,需要的朋友可以參考下
    2014-06-06
  • MySQL定時任務(wù)(EVENT事件)如何配置詳解

    MySQL定時任務(wù)(EVENT事件)如何配置詳解

    這篇文章主要介紹了MySQL定時任務(wù)(EVENT事件)如何配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MySQL快速分頁查詢的優(yōu)化方案

    MySQL快速分頁查詢的優(yōu)化方案

    本文主要介紹了傳統(tǒng)分頁方法的性能瓶頸,并詳細闡述了五種優(yōu)化方案:基于游標的分頁、覆蓋索引優(yōu)化、子查詢優(yōu)化、延遲關(guān)聯(lián)和預(yù)計算分頁數(shù)據(jù),通過性能對比,展示了不同方法在不同場景下的適用性,并指出了使用這些優(yōu)化方案時需要注意的事項,需要的朋友可以參考下
    2026-03-03
  • Linux下修改MySQL數(shù)據(jù)庫數(shù)據(jù)文件路徑的步驟

    Linux下修改MySQL數(shù)據(jù)庫數(shù)據(jù)文件路徑的步驟

    這篇文章主要介紹了Linux下修改MySQL數(shù)據(jù)庫數(shù)據(jù)文件路徑的步驟,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • MySQL清空數(shù)據(jù)表的方法實例與分析

    MySQL清空數(shù)據(jù)表的方法實例與分析

    這篇文章給大家詳細介紹了MySQL清空數(shù)據(jù)表的方法,文中給出了實例代碼,對大家學(xué)習(xí)使用MySQL具有一定的參考借鑒價值,有需要的可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • 淺析MySQL如何實現(xiàn)事務(wù)隔離

    淺析MySQL如何實現(xiàn)事務(wù)隔離

    使用過關(guān)系型數(shù)據(jù)庫的,應(yīng)該都事務(wù)的概念有所了解,知道事務(wù)有 ACID 四個基本屬性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability),今天我們主要來理解一下事務(wù)的隔離性
    2021-06-06
  • MySQL中SHOW DATABASES語句查看或顯示數(shù)據(jù)庫

    MySQL中SHOW DATABASES語句查看或顯示數(shù)據(jù)庫

    在MySQL中,可使用SHOW DATABASES語句來查看或顯示當(dāng)前用戶權(quán)限范圍以內(nèi)的數(shù)據(jù)庫,下面就來介紹一下如何使用,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • MySQL INT類型全解析

    MySQL INT類型全解析

    這篇文章主要介紹了MySQL INT類型的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL中的存儲過程異常處理

    MySQL中的存儲過程異常處理

    這篇文章主要介紹了MySQL中的存儲過程異常處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • mysql中的int類型對應(yīng)于java中的Long類型詳解

    mysql中的int類型對應(yīng)于java中的Long類型詳解

    這篇文章主要介紹了mysql中的int類型對應(yīng)于java中的Long類型,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論

定西市| 威远县| 绥中县| 丰镇市| 昌乐县| 芜湖县| 芜湖县| 准格尔旗| 甘德县| 桐乡市| 扎囊县| 临潭县| 安龙县| 孙吴县| 和林格尔县| 永泰县| 隆尧县| 德庆县| 兴山县| 育儿| 武宣县| 宜春市| 昔阳县| 潼南县| 金湖县| 盘山县| 灵宝市| 精河县| 乌审旗| 天台县| 绵竹市| 甘德县| 金塔县| 伊金霍洛旗| 邵东县| 合山市| 那坡县| 岗巴县| 安泽县| 黄大仙区| 广平县|