事務的作用我就不再提及了, 相信看到這篇文章的基本上都會知道事務的概念。本篇文章首先會介紹一下事務的特性、四種隔離級別以及對應的實戰測試,希望幫讀者加深事務的理解。
隔離級別
髒讀可能
不可重複讀
幻讀ru
yesyes
yesrc
noyes
yesrr
nono
yesserialize
nonono
tips :在任何隔離級別下,對資料的寫都是會加鎖的
先建立乙個表 transaction_test作為測試使用:
create table `transaction_test` (
`id` int(11) not null,
`name` varchar(255) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
這裡開啟兩個視窗作為兩個session會話,並設定會ru級別:
然後用session a 插入一條資料
insert into transaction_test (id,name) values (1,'a');
在 session b中可以馬上檢視到插入的資料。
再演示一下寫時鎖行的情況
可以看到這時session b正處於鎖定狀態,因為session a還沒有提交。
首先讓sesseion a 插入一條記錄。
insert into transaction_test (id,name) values (2,'a');
由於沒有提交,所以b不會看到這條記錄,一旦a提交後,由於隔離級別不能防止不可重複讀,所以當a提交後,b再次查詢會多出一條記錄。
不可重複讀是mysql預設隔離級別,可以重複一下上一次的實驗。a插入一條記錄,就算a提交後,b查詢的記錄依然不會變。
tips:大家要是做實驗的時候需要將 autocommit 設定為0,防止自動提交
第四種隔離方式這裡就不再做實驗測試了
高效能mysql實戰 筆記(一)
模擬電商資料庫設計及架構優化實戰 只設計資料庫設計,不包括前後端 專案說明 模擬電商專案 一 所有資料庫物件名稱必須使用小寫字母並用下劃線分割 二 所有資料庫物件名稱禁止使用mysql保留關鍵字 如表名為from 三 資料庫物件的命名要見名識義,並且最好不要超過32個字元 例 使用者資料庫表 mc ...
《高效能MySQL》閱讀 MySQL中的事務
20210107 22 00 23 00 承接 高效能mysql 閱讀 mysql架構和歷史 一 一頁書 詩號 世事如棋,乾坤莫測,笑盡英雄啊!9.mysql中的事務 1.mysql中提供了兩種事務型擎innodb和ndbcluster,2.mysql預設是自動提交事務的,就是如果不是顯示的開始乙個...
高效能mysql之事務的理解
acid只的是原子性,永續性,隔離性,永續性 原子性,概念理解 事務代表的最小的執行單元,事務中操作要麼同時發生,要麼同時不發生,不會出現有些發生有些不發生的情況,例子 銀行轉賬,a賬戶轉賬到給b賬戶轉賬100,事務中的操作分兩步,a賬戶減100,b賬戶加100,這兩步必定同時成功或失敗 一致性概念...