HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    虛讀就是不可重復(fù)讀嗎(虛讀就是不可重復(fù)讀嗎)

    發(fā)布時間:2023-04-13 12:49:12     稿源: 創(chuàng)意嶺    閱讀: 93        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于虛讀就是不可重復(fù)讀嗎的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    虛讀就是不可重復(fù)讀嗎(虛讀就是不可重復(fù)讀嗎)

    一、事務(wù)隔離級別有哪些?

    事務(wù)的隔離級別有4種,由低到高分別為Read uncommitted 、Read committed 、Repeatable read 、Serializable 。事物的并發(fā)操作中可能休閑臟讀,不可重復(fù)讀,幻讀。

    1、第一種隔離級別:Read uncommitted(讀未提交)

    如果一個事務(wù)已經(jīng)開始寫數(shù)據(jù),則另外一個事務(wù)不允許同時進行寫操作,但允許其他事務(wù)讀此行數(shù)據(jù),該隔離級別可以通過“排他寫鎖”,但是不排斥讀線程實現(xiàn)。這樣就避免了更新丟失,卻可能出現(xiàn)臟讀,也就是說事務(wù)B讀取到了事務(wù)A未提交的數(shù)據(jù)。

    解決了更新丟失,但還是可能會出現(xiàn)臟讀。

    2、第二種隔離級別:Read committed(讀提交)

    如果是一個讀事務(wù)(線程),則允許其他事務(wù)讀寫,如果是寫事務(wù)將會禁止其他事務(wù)訪問該行數(shù)據(jù),該隔離級別避免了臟讀,但是可能出現(xiàn)不可重復(fù)讀。事務(wù)A事先讀取了數(shù)據(jù),事務(wù)B緊接著更新了數(shù)據(jù),并提交了事務(wù),而事務(wù)A再次讀取該數(shù)據(jù)時,數(shù)據(jù)已經(jīng)發(fā)生了改變。

    解決了更新丟失和臟讀問題。

    3、第三種隔離級別:Repeatable read(可重復(fù)讀?。?/p>

    可重復(fù)讀取是指在一個事務(wù)內(nèi),多次讀同一個數(shù)據(jù),在這個事務(wù)還沒結(jié)束時,其他事務(wù)不能訪問該數(shù)據(jù),這樣就可以在同一個事務(wù)內(nèi)兩次讀到的數(shù)據(jù)是一樣的,因此稱為是可重復(fù)讀隔離級別,讀取數(shù)據(jù)的事務(wù)將會禁止寫事務(wù),寫事務(wù)則禁止任何其他事務(wù),這樣避免了不可重復(fù)讀和臟讀,但是有時可能會出現(xiàn)幻讀。

    讀取數(shù)據(jù)的事務(wù)可以通過“共享讀鏡”和“排他寫鎖”實現(xiàn)。

    解決了更新丟失、臟讀、不可重復(fù)讀、但是還會出現(xiàn)幻讀。

    4、第四種隔離級別:Serializable(可序化)

    提供嚴格的事務(wù)隔離,它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個接著一個地執(zhí)行,但不能并發(fā)執(zhí)行,如果僅僅通過“行級鎖”是無法實現(xiàn)序列化的,必須通過其他機制保證新插入的數(shù)據(jù)不會被執(zhí)行查詢操作的事務(wù)訪問到。

    序列化是最高的事務(wù)隔離級別,同時代價也是最高的,性能很低,一般很少使用,在該級別下,事務(wù)順序執(zhí)行,不僅可以避免臟讀、不可重復(fù)讀,還避免了幻讀。

    虛讀就是不可重復(fù)讀嗎(虛讀就是不可重復(fù)讀嗎)

    事務(wù)的基本要素(ACID)

    1、原子性(Atomicity):事務(wù)開始后所有操作,要么全部做完,要么全部不做,不可能停滯在中間環(huán)節(jié)。事務(wù)執(zhí)行過程中出錯,會回滾到事務(wù)開始前的狀態(tài),所有的操作就像沒有發(fā)生一樣。也就是說事務(wù)是一個不可分割的整體,就像化學中學過的原子,是物質(zhì)構(gòu)成的基本單位。

    2、一致性(Consistency):事務(wù)開始前和結(jié)束后,數(shù)據(jù)庫的完整性約束沒有被破壞 。比如A向B轉(zhuǎn)賬,不可能A扣了錢,B卻沒收到。

    3、隔離性(Isolation):同一時間,只允許一個事務(wù)請求同一數(shù)據(jù),不同的事務(wù)之間彼此沒有任何干擾。比如A正在從一張銀行卡中取錢,在A取錢的過程結(jié)束前,B不能向這張卡轉(zhuǎn)賬。

    4、持久性(Durability):事務(wù)完成后,事務(wù)對數(shù)據(jù)庫的所有更新將被保存到數(shù)據(jù)庫,不能回滾。

    以上內(nèi)容參考:事務(wù)隔離級別 - 百度百科

    二、普通話考試是不是不能重復(fù)讀呢

    普通話考試可以重復(fù)讀,第一、二項可以重復(fù)一次,第三項、第四項也不能重復(fù),如果重復(fù)說明表達不流暢,也會扣不流暢的分值。

    普通話水平等級分為三級六等,即一、二、三級,每個級別再分出甲乙兩個等次;一級甲等為最高,三級乙等為最低。普通話水平測試不是口才的評定,而是對應(yīng)試人掌握和運用普通話所達到的規(guī)范程度的測查和評定,是應(yīng)試人的漢語標準語測試。

    應(yīng)試人在運用普通話口語進行表達過程中所表現(xiàn)的語音、詞匯、語法規(guī)范程度,是評定其所達到的水平等級的重要依據(jù)。

    虛讀就是不可重復(fù)讀嗎(虛讀就是不可重復(fù)讀嗎)

    擴展資料:

    普通話考試的等級標準:

    一級 (標準的普通話)

    1、一級甲等(測試得分:97分-100分之間) 朗讀和自由交談時,語音標準,詞語、語法正確無誤,語調(diào)自然,表達流暢。

    2、一級乙等(測試得分:92分-96.99分之間) 朗讀和自由交談時,語音標準,詞語、語法正確無誤,語調(diào)自然,表達流暢。偶然有字音、字調(diào)失誤。

    二級 (比較標準的普通話)

    1、二級甲等(測試得分:87分-91.99分之間) 朗讀和自由交談時,聲韻調(diào)發(fā)音基本標準,語調(diào)自然,表達流暢。少數(shù)難點音有時出現(xiàn)失誤。詞語、語法極少有誤。

    2、二級乙等(測試得分:80分-86.99分之間) 朗讀和自由交談時,個別調(diào)值不準,聲韻母發(fā)音有不到位現(xiàn)象。難點音失誤較多。方言語調(diào)明顯。有使用方言詞、方言語法的情況。

    三級(一般水平的普通話)

    1、三級甲等(測試得分:70分-79.99分之間) 朗讀和自由交談時,聲韻母發(fā)音失誤較多,難點音超出常見范圍,聲調(diào)調(diào)值多不準。方言語調(diào)較明顯。詞語、語法有失誤。

    2、三級乙等(測試得分:60分-69.99分之間) 朗讀和自由交談時,聲韻調(diào)發(fā)音失誤多,方音特征突出。方言語調(diào)明顯。詞語、語法失誤較多。外地人聽其談話有聽不懂的情況。

    參考資料來源:百度百科—普通話水平測試

    三、關(guān)于spring事務(wù)配置的代碼

    spring配置事務(wù)的代碼:

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

    <property name="sessionFactory">

    <ref bean="sessionFactory"/>

    </property>

    </bean>

    <!-- 配置事務(wù)的傳播特性 -->

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

    <tx:attributes>

    <tx:method name="add*" propagation="REQUIRED"/>

    <tx:method name="del*" propagation="REQUIRED"/>

    <tx:method name="modify*" propagation="REQUIRED"/>

    <tx:method name="*" propagation="REQUIRED"/>

    </tx:attributes>

    </tx:advice>

    <!-- 那些類的哪些方法參與事務(wù) -->

    <aop:config>

    <aop:pointcut id="allManagerMethod" expression="execution(* com.esoft.sale.manager.*.*(..))"/>

    <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>

    </aop:config>

    事務(wù)處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會永久更新面向數(shù)據(jù)的資源。通過將一組相關(guān)操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復(fù)并使應(yīng)用程序更加可靠。一個邏輯工作單元要成為事務(wù),必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性:

    · 原子性 (atomic)

    事務(wù)必須是原子工作單元;對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。通常,與某個事務(wù)關(guān)聯(lián)的操作具有共同的目標,并且是相互依賴的。如果系統(tǒng)只執(zhí)行這些操作的一個子集,則可能會破壞事務(wù)的總體目標。原子性消除了系統(tǒng)處理操作子集的可能性。

    · 一致性 (consistent)

    事務(wù)在完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時,所有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如 B 樹索引或雙向鏈表)都必須是正確的。某些維護一致性的責任由應(yīng)用程序開發(fā)人員承擔,他們必須確保應(yīng)用程序已強制所有已知的完整性約束。例如,當開發(fā)用于轉(zhuǎn)帳的應(yīng)用程序時,應(yīng)避免在轉(zhuǎn)帳過程中任意移動小數(shù)點。

    · 隔離性 (insulation)

    由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)查看數(shù)據(jù)時數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會查看中間狀態(tài)的數(shù)據(jù)。這稱為可串行性,因為它能夠重新裝載起始數(shù)據(jù),并且重播一系列事務(wù),以使數(shù)據(jù)結(jié)束時的狀態(tài)與原始事務(wù)執(zhí)行的狀態(tài)相同。當事務(wù)可序列化時將獲得最高的隔離級別。在此級別上,從一組可并行執(zhí)行的事務(wù)獲得的結(jié)果與通過連續(xù)運行每個事務(wù)所獲得的結(jié)果相同。由于高度隔離會限制可并行執(zhí)行的事務(wù)數(shù),所以一些應(yīng)用程序降低隔離級別以換取更大的吞吐量。

    · 持久性 (Duration)

    事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持。

    事務(wù)準備接受不一致數(shù)據(jù)的級別稱為隔離級別。隔離級別是一個事務(wù)必須與其它事務(wù)進行隔離的程度。較低的隔離級別可以增加并發(fā),但代價是降低數(shù)據(jù)的正確性。相反,較高的隔離級別可以確保數(shù)據(jù)的正確性,但可能對并發(fā)產(chǎn)生負面影響。應(yīng)用程序要求的隔離級別確定了所使用的鎖定行為:

    數(shù)據(jù)庫在被廣大客戶所共享訪問的操作過程中很可能出現(xiàn)以下幾種不確定情況 :

    1. 更新丟失(Lost update):兩個事務(wù)都同時更新一行數(shù)據(jù)但是第二個事務(wù)卻中途失敗退出導(dǎo)致對數(shù)據(jù)兩個修改都失效了這是系統(tǒng)沒有執(zhí)行任何鎖操作因此并發(fā)事務(wù)并沒有被隔離開來

    2. 臟讀?。―irty Reads):一個事務(wù)開始讀取了某行數(shù)據(jù)但是另外一個事務(wù)已經(jīng)更新了此數(shù)據(jù)但沒有能夠及時提交。這是相當危險很可能所有操作都被回滾

    3. 不可重復(fù)讀?。∟on-repeatable Reads):一個事務(wù)對同一行數(shù)據(jù)重復(fù)讀取兩次但是卻得到了不同結(jié)果。例如在兩次讀取中途有另外一個事務(wù)對該行數(shù)據(jù)進行了修改并提交

    4. 兩次更新問題(Second lost updates problem):無法重復(fù)讀取特例,有兩個并發(fā)事務(wù)同時讀取同一行數(shù)據(jù)然后其中一個對它進行修改提交而另一個也進行了修改提交這就會造成第一次寫操作失效

    5. 虛讀(Phantom Reads):也稱為幻像(幻影)。事務(wù)在操作過程中進行兩次查詢,第二次查詢結(jié)果包含了第一次查詢中未出現(xiàn)的數(shù)據(jù)(這里并不要求兩次查詢SQL語句相同)這是因為在兩次查詢過程中有另外一個事務(wù)插入數(shù)據(jù)造成的

    為了避免上面出現(xiàn)幾種情況在標準SQL規(guī)范中定義了4個事務(wù)隔離級別,不同隔離級別對事務(wù)處理不同 。

    1.未授權(quán)讀?。≧ead Uncommitted):也稱未提交讀。允許臟讀取但不允許更新丟失,如果一個事務(wù)已經(jīng)開始寫數(shù)據(jù)則另外一個數(shù)據(jù)則不允許同時進行寫操作但允許其他事務(wù)讀此行數(shù)據(jù)。該隔離級別可以通過“排他寫鎖”實現(xiàn) 。事務(wù)隔離的最低級別,僅可保證不讀取物理損壞的數(shù)據(jù)。與READ COMMITTED 隔離級相反,它允許讀取已經(jīng)被其它用戶修改但尚未提交確定的數(shù)據(jù)。

    2. 授權(quán)讀取(Read Committed):也稱提交讀。允許不可重復(fù)讀取但不允許臟讀取。這可以通過“瞬間共享讀鎖”和“排他寫鎖”實現(xiàn),讀取數(shù)據(jù)的事務(wù)允許其他事務(wù)繼續(xù)訪問該行數(shù)據(jù),但是未提交寫事務(wù)將會禁止其他事務(wù)訪問該行 。SQL Server 默認的級別。在此隔離級下,SELECT 命令不會返回尚未提交(Committed) 的數(shù)據(jù),也不能返回臟數(shù)據(jù)。

    3. 可重復(fù)讀?。≧epeatable Read):禁止不可重復(fù)讀取和臟讀取。但是有時可能出現(xiàn)幻影數(shù)據(jù),這可以通過“共享讀鎖”和“排他寫鎖”實現(xiàn),讀取數(shù)據(jù)事務(wù)將會禁止寫事務(wù)(但允許讀事務(wù)),寫事務(wù)則禁止任何其他事務(wù) 。在此隔離級下,用SELECT 命令讀取的數(shù)據(jù)在整個命令執(zhí)行過程中不會被更改。此選項會影響系統(tǒng)的效能,非必要情況最好不用此隔離級。

    4. 序列化(Serializable):也稱可串行讀。提供嚴格的事務(wù)隔離,它要求事務(wù)序列化執(zhí)行,事務(wù)只能一個接著一個地執(zhí)行,但不能并發(fā)執(zhí)行。如果僅僅通過“行級鎖”是無法實現(xiàn)事務(wù)序列化的,必須通過其他機制保證新插入的數(shù)據(jù)不會被剛執(zhí)行查詢操作事務(wù)訪問到 。事務(wù)隔離的最高級別,事務(wù)之間完全隔離。如果事務(wù)在可串行讀隔離級別上運行,則可以保證任何并發(fā)重疊事務(wù)均是串行的。

    下面是四種隔離級別允許不同類型的行為。

    隔離級別 臟讀 不可重復(fù)讀取 幻像(幻影)

    未提交讀 是 是 是

    提交讀 否 是 是

    可重復(fù)讀 否 否 是

    可串行讀 否 否 否

    隔離級別越高越能保證數(shù)據(jù)完整性和一致性,但是對并發(fā)性能影響也越大。對于多數(shù)應(yīng)用程序,可以優(yōu)先考慮把數(shù)據(jù)庫系統(tǒng)隔離級別設(shè)為Read Committed ,它能夠避免臟讀取而且具有較好并發(fā)性能。盡管它會導(dǎo)致不可重復(fù)讀、虛讀和第二類丟失更新這些并發(fā)問題,在可能出現(xiàn)這類問題的個別場合,可以由應(yīng)用程序采用悲觀鎖或樂觀鎖來控制 。

    鎖(Lock) 是在多用戶環(huán)境下對資源訪問的一種限制。機制當對一個數(shù)據(jù)源加鎖后,此數(shù)據(jù)源就有了一定的訪問限制。我們就稱對此數(shù)據(jù)源進行了“鎖定”。在SQL Server中,可以對以下的對象進行鎖定:

    數(shù)據(jù)行(Row):數(shù)據(jù)頁中的單行數(shù)據(jù);

    索引行(Key):索引頁中的單行數(shù)據(jù),即索引的鍵值;

    頁(Page):頁是SQL Server 存取數(shù)據(jù)的基本單位,其大小為8KB;

    盤區(qū)(Extent):一個盤區(qū)由8 個連續(xù)的頁組成;

    表(Table);

    數(shù)據(jù)庫(Database)。

    四、hibernate事物管理是干嘛用的。誰能給具體解釋一下

    hibernate中的事務(wù)管理.

    事務(wù):一個操作由多個單元組成這些單元要不全都成功,要不全都不成功。

    事務(wù)特性:ACID

    設(shè)置hibernate的事務(wù)隔離級別

    hibernate.connection.isolation = 4

    1—Read uncommitted isolation

    2—Read committed isolation ----oracle默認

    4—Repeatable read isolation---mysql默認

    8—Serializable isolation

    說白了,hibernate事務(wù)管理就是為了防止產(chǎn)生臟讀,不可重復(fù)讀,虛讀,幻讀的情況。

    有了spring的話,一般會把事務(wù)交給spring來管理,spring有專門的事務(wù)管理器的。

    以上就是關(guān)于虛讀就是不可重復(fù)讀嗎相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    虛讀就是不可重復(fù)讀嗎(虛讀就是不可重復(fù)讀嗎)

    怎么在抖音視頻上加文字(抖音一邊說話一邊出字幕)

    杭州十大金牌婚禮司儀(杭州十大金牌婚禮司儀排名)