日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

简述一下你对mysql事物的理解_面试题:说说你对数据库事务的理解

發(fā)布時間:2024/4/17 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简述一下你对mysql事物的理解_面试题:说说你对数据库事务的理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在回答這個問題的時候首先要考慮的是這里面包含了哪些知識點是我們要回答的,

第一個要點:什么是事務;

第二個要點:數(shù)據(jù)庫的基本特性是什么?

第三個要點:什么是事務隔離,有哪些事務隔離級別?

什么是事務

數(shù)據(jù)庫中的事務是作為單個邏輯工作單元執(zhí)行的一系列操作。(多條 SQL 語句,要么全部執(zhí)行成功,要么全部執(zhí)行失敗。)

數(shù)據(jù)庫要支持事務操作必須滿足四個特性,也就是常說的ACID:

A:原子性(Atomicity):原子性是指事務包含的所有操作要么全部成功,要么全部失敗

C:一致性(Consistency):一個事務執(zhí)行之前和執(zhí)行之后都必須處于一致性狀態(tài)。

I:隔離性(Isolation):多個事務在執(zhí)行同一個操作時不能被其他事務干擾。

D:持久性(dependency):一個事務一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應該是永久性的

什么是事務隔離,有哪些事務隔離級別?

事務的隔離性就是指,多個并發(fā)的事務同時訪問一個數(shù)據(jù)庫時,一個事務不應該被另一個事務所干擾,每個并發(fā)的事務間要相互進行隔離。

一般的數(shù)據(jù)庫,都包括以下四種隔離級別:

讀未提交(Read Uncommitted)

讀提交(Read Committed)

可重復讀(Repeated Read)

串行化(Serializable)

讀未提交(Read Uncommitted)

讀未提交,就是可以讀到未提交的內容。

因此,在這種隔離級別下,查詢是不會加鎖的,也由于查詢的不加鎖,所以這種隔離級別的一致性是最差的,可能會產生“臟讀”、“不可重復讀”、“幻讀”。

讀提交(Read Committed)

讀提交,就是讀到已經提交了的內容。

這是各種系統(tǒng)中最常用的一種隔離級別,也是SQL Server和Oracle的默認隔離級別。這種隔離級別能夠有效的避免臟讀,但除非在查詢中顯示的加鎖。“讀提交”只能避免“臟讀”,并不能避免“不可重復讀”和“幻讀”。

可重復讀(Repeated Read)

可重復讀,就是專門針對“不可重復讀”這種問題而制定的隔離級別,它可以有效的避免“不可重復讀”。并且它也是MySql的默認隔離級別。

當事務啟動時,不允許進行“修改操作(Update)”,而“不可重復讀”恰恰是因為兩次讀取之間進行了數(shù)據(jù)的修改,因此,“可重復讀”能夠有效的避免“不可重復讀”,但卻避免不了“幻讀”,因為幻讀是由于“插入或者刪除操作(Insert or Delete)”而產生的。

串行化(Serializable)

數(shù)據(jù)庫最高的隔離級別,這種級別下,事務“串行化順序執(zhí)行”,也就是一個一個排隊執(zhí)行(每一行數(shù)據(jù)都進行了加鎖)。

這種級別下,“臟讀”、“不可重復讀”、“幻讀”都不會出現(xiàn),但是執(zhí)行效率非常差,性能開銷也最大,所以基本沒人會用。

總結

以上是生活随笔為你收集整理的简述一下你对mysql事物的理解_面试题:说说你对数据库事务的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。