国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql存儲過程事務(wù)管理簡析

2024-07-24 12:48:59
字體:
供稿:網(wǎng)友
ACID:Atomic、Consistent、Isolated、Durable
存儲程序提供了一個絕佳的機制來定義、封裝和管理事務(wù)。
1,MySQL的事務(wù)支持
1)MySQL的事務(wù)支持不是綁定在MySQL服務(wù)器本身,而是與存儲引擎相關(guān):
Sql代碼
復制代碼 代碼如下:

MyISAM:不支持事務(wù),用于只讀程序提高性能
InnoDB:支持ACID事務(wù)、行級鎖、并發(fā)
Berkeley DB:支持事務(wù)
MyISAM:不支持事務(wù),用于只讀程序提高性能
InnoDB:支持ACID事務(wù)、行級鎖、并發(fā)
Berkeley DB:支持事務(wù) 2) 隔離級別:

隔離級別決定了一個session中的事務(wù)可能對另一個session的影響、并發(fā)session對數(shù)據(jù)庫的操作、一個session中所見數(shù)據(jù)的一致性
ANSI標準定義了4個隔離級別,MySQL的InnoDB都支持:
Java代碼
復制代碼 代碼如下:

READ UNCOMMITTED:最低級別的隔離,通常又稱為dirty read,它允許一個事務(wù)讀取還沒commit的數(shù)據(jù),這樣可能會提高性能,但是dirty read可能不是我們想要的
READ COMMITTED:在一個事務(wù)中只允許已經(jīng)commit的記錄可見,如果session中select還在查詢中,另一session此時insert一條記錄,則新添加的數(shù)據(jù)不可見
REPEATABLE READ:在一個事務(wù)開始后,其他session對數(shù)據(jù)庫的修改在本事務(wù)中不可見,直到本事務(wù)commit或rollback。在一個事務(wù)中重復select的結(jié)果一樣,除非本事務(wù)中update數(shù)據(jù)庫。
SERIALIZABLE:最高級別的隔離,只允許事務(wù)串行執(zhí)行。為了達到此目的,數(shù)據(jù)庫會鎖住每行已經(jīng)讀取的記錄,其他session不能修改數(shù)據(jù)直到前一事務(wù)結(jié)束,事務(wù)commit或取消時才釋放鎖。
READ UNCOMMITTED:最低級別的隔離,通常又稱為dirty read,它允許一個事務(wù)讀取還沒commit的數(shù)據(jù),這樣可能會提高性能,但是dirty read可能不是我們想要的
READ COMMITTED:在一個事務(wù)中只允許已經(jīng)commit的記錄可見,如果session中select還在查詢中,另一session此時insert一條記錄,則新添加的數(shù)據(jù)不可見
REPEATABLE READ:在一個事務(wù)開始后,其他session對數(shù)據(jù)庫的修改在本事務(wù)中不可見,直到本事務(wù)commit或rollback。在一個事務(wù)中重復select的結(jié)果一樣,除非本事務(wù)中update數(shù)據(jù)庫。
SERIALIZABLE:最高級別的隔離,只允許事務(wù)串行執(zhí)行。為了達到此目的,數(shù)據(jù)庫會鎖住每行已經(jīng)讀取的記錄,其他session不能修改數(shù)據(jù)直到前一事務(wù)結(jié)束,事務(wù)commit或取消時才釋放鎖。 可以使用如下語句設(shè)置MySQL的session隔離級別:

Sql代碼
復制代碼 代碼如下:

set transaction isolation level {read uncommitted | read committed | repeatable read | serializable}
set transaction isolation level {read uncommitted | read committed | repeatable read | serializable}

MySQL默認的隔離級別是REPEATABLE READ,在設(shè)置隔離級別為READ UNCOMMITTED或SERIALIZABLE時要小心,READ UNCOMMITTED會導致數(shù)據(jù)完整性的嚴重問題,而SERIALIZABLE會導致性能問題并增加死鎖的機率
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 娱乐| 泊头市| 永德县| 迭部县| 开原市| 民乐县| 奉贤区| 枣阳市| 遵义县| 定安县| 双牌县| 上栗县| 金秀| 贵南县| 梓潼县| 沈丘县| 徐汇区| 布拖县| 柳河县| 南澳县| 达日县| 右玉县| 黑河市| 礼泉县| 毕节市| 峨眉山市| 水富县| 开封市| 阜宁县| 宁蒗| 崇州市| 江阴市| 西乌| 桃园市| 德阳市| 彭阳县| 昌宁县| 呈贡县| 大竹县| 石首市| 崇仁县|