關於開發中事務的一些總結

2021-10-09 14:38:58 字數 1018 閱讀 3966

事務面試中高頻出現的乙個知識點,也是開發中比較常用的乙個知識點。

為此再此詳細總結一下:

什麼是事務,我的理解就是為了做乙個目標任務,目標任務中的一系列的操作集合的單元,把這個事情單元叫做事務。

為了把這個事情做的漂亮,我們應該滿足acid的特徵。acid 我就簡單貼上複製一下,然後加入一些自己的一些看法,期待各位糾正,一起提高。

原子性(atomicity)

原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。[好理解,不解釋]

一致性(consistency)

事務前後資料的完整性必須保持一致。或者系列操作前後系統的資料狀態一致。

這個不太好理解。作為乙個水平一般的且厚臉皮的技術人員,我是這麼去理解的:大概就是說 操作的資料前和運算元據後的資料狀態差不多。比如5個人鬥地主,每個人都帶來2000塊錢,總額是1萬元,不管中間發生了什麼,這個1萬塊錢的預期總額都是1萬。如果張三的老婆,中途又給張三新增了2000塊錢,那麼我們應該保證這輪結束事務結束才能進來新增。不能中途新增賭資。如果本輪賭博沒有完成新增賭資,說明本輪的事務被破壞。那麼說明在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示運算元據必須完全符合所有的預設約束、觸發器、級聯回滾等。

歡迎打臉,因為我也不敢確定,如果面試官這樣問我,我肯定就這麼說了。o(∩_∩)o ....

隔離性(isolation)

事務的隔離性是多個使用者併發訪問資料庫時,資料庫為每乙個使用者開啟的事務,不能被其他事務的運算元據所干擾,多個併發事務之間要相互隔離。[好理解,不解釋]

永續性(durability)

永續性是指乙個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響。[好理解,不解釋]

樂觀鎖和悲觀鎖:

樂觀鎖: 用冗餘的version欄位 或者是updatetime . 1.先查 到v和time,然後更新時比較v和time.

關於遊戲開發的一些總結

1 架構的設計原則 簡單 可控 穩定 高效能。作為遊戲開發,簡單和可控在很大程度能夠減少開發成本,對於正在運營的遊戲,也正是追求遊戲的穩定。2 關於三方通訊的功能,一定要採取不信用的態度,任何 於外部的東西,都可能是不安全的,一定要有防禦性。3 遊戲設計一定要有可控的壓力閾值,不能讓單個玩家控制我們...

關於php開發的一些總結

一 php連線mysql資料庫 host localhost db user root db pass password db name databasename timezone asia shanghai link mysql connect host,db user,db pass mysql...

關於管理中的一些總結

時光荏苒,轉眼9月多了,好有幾個月不寫部落格了,多年來都堅持乙個月至少一篇,最近沒有堅持下去。主要是感覺自己沒什麼可寫的。仔細想想,其實收穫也很多,只是自己沒有進行總結。在部門的管理工作中,自己慢慢體會到,管理部門比管理專案還是有比較大的區別的,特別是對人的管理 事的管理方面,還有很多需要學習的地方...