java面試知識(shí)總結(jié)----事務(wù)的理解

目標(biāo):

理解事務(wù)的概念,和實(shí)際應(yīng)用理解

概念

事務(wù)是恢復(fù)和并發(fā)控制的基本單位。

事務(wù)應(yīng)該具有4個(gè)屬性:原子性、一致性、隔離性、持久性。這四個(gè)屬性通常稱為ACID特性。

原子性(atomicity)。一個(gè)事務(wù)是一個(gè)不可分割的工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。

一致性(consistency)。事務(wù)必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。一致性與原子性是密切相關(guān)的。

隔離性(isolation)。一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。

持久性(durability)。持久性也稱永久性(permanence),指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其有任何影響。

實(shí)際問(wèn)題理解

  1. :由于未加事務(wù), 默認(rèn)機(jī)制是更新會(huì)去主庫(kù)更新,查詢會(huì)去從庫(kù)查詢 ,如反復(fù)的執(zhí)行更新再查詢這樣的邏輯,就會(huì)很大可能出現(xiàn)查詢到的數(shù)據(jù)不是最新的(也就是主庫(kù)還沒(méi)來(lái)得及同步到從庫(kù))

解決辦法1:將查詢也加事務(wù),強(qiáng)制讓其也去主庫(kù)查詢,盡可能讓更新和后面的查詢?cè)谝粋€(gè)事務(wù)完成,避免出現(xiàn)去從數(shù)據(jù)庫(kù) 數(shù)據(jù)查詢延時(shí)問(wèn)題。

  1. :避免事務(wù)太大,對(duì)大量數(shù)據(jù)集數(shù)據(jù)庫(kù)操作的處理

解決辦法:合并更新、插入操作,批量執(zhí)行,并適當(dāng)采用異步化的方式實(shí)現(xiàn)最終一致性,如:通過(guò)狀態(tài)控制異步處理,最終一致性

  1. 事務(wù)處理中不要包含遠(yuǎn)程調(diào)用,遠(yuǎn)程連接等可能網(wǎng)絡(luò)請(qǐng)求,防止因?yàn)榫W(wǎng)絡(luò)的不可靠性,造成的事務(wù)過(guò)長(zhǎng),數(shù)據(jù)庫(kù)卡死現(xiàn)象
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容