原子性, 一個事務 要么完全提交 要么完全回滾,不會介于2者之間。 一致性,一個查詢發(fā)起后,不管數(shù)據(jù)發(fā)生了多少變化 多少事務,查詢結果應當為發(fā)起查詢時間一致的數(shù)據(jù)
創(chuàng)新互聯(lián)專注于監(jiān)利網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供監(jiān)利營銷型網(wǎng)站建設,監(jiān)利網(wǎng)站制作、監(jiān)利網(wǎng)頁設計、監(jiān)利網(wǎng)站官網(wǎng)定制、成都微信小程序服務,打造監(jiān)利網(wǎng)絡公司原創(chuàng)品牌,更為您提供監(jiān)利網(wǎng)站排名全網(wǎng)營銷落地服務。
1、原子性:在整個操作的事務中,要么全部成功,要么全部失敗。
2、隔離性:所謂隔離性,就是每個事務執(zhí)行的時候,相互之間不會受到影響,都是單獨的事務。
3、一致性:也就是說事務在執(zhí)行之后,必須和之前的數(shù)據(jù)保持一致。
4、持久性:事務一旦提交,就會持久化到數(shù)據(jù)庫中,不能回滾。
事務的原子性是指一個事務中的所有操作是不可分割的,必須是一個邏輯單元,只能是全部執(zhí)行成功或者全部執(zhí)行失敗。
事務的原子性是指事務必須是一個原子的操作序列單元。事務中包含的各項操作在一次執(zhí)行過程中,只允許出現(xiàn)兩種狀態(tài)之一,要么都成功,要么都失敗任何一項操作都會導致整個事務的失敗,同時其它已經(jīng)被執(zhí)行的操作都將被撤銷并回滾,只有所有的操作全部成功,整個事務才算是成功完成。
事務原子性是如何保證的
MySQL事務的原子性是通過undo log來實現(xiàn)的。磁盤存數(shù)據(jù)采用的是隨機存儲的方式,這就使得在存放數(shù)據(jù)的時候不僅需要記錄下存放的數(shù)據(jù)值,還需要記錄存放數(shù)據(jù)的地址,存儲速度相對比較慢。而日志存儲是連續(xù)存儲,因此在存數(shù)據(jù)的時候只需要記錄下首地址即可,其余數(shù)據(jù)記錄偏移量,可以進一步提高性能。
每一個寫事務,都會修改BufferPool,從而產(chǎn)生相應的Redo/Undo日志,這些日志信息會被記錄到日志文件中。在MySQL中,任何BufferPool中的頁被刷新到磁盤之前,都會先寫入到日志文件中,如果BufferPool中的數(shù)據(jù)提交,此時數(shù)據(jù)庫掛了,那么在數(shù)據(jù)庫再次啟動之后,就可以通過Redo日志來將其恢復出來,以此來保證寫的數(shù)據(jù)不會丟失。
如果數(shù)據(jù)沒有提交,此時數(shù)據(jù)庫掛了,就需要通過Undo日志來實現(xiàn)。每一條數(shù)據(jù)變更(insert/update/delete)操作都伴隨一條undo log的生成,并且回滾日志必須先于數(shù)據(jù)持久化到磁盤上。所謂的回滾就是根據(jù)回滾日志做逆向操作,比如delete的逆向操作為insert,insert的逆向操作為delete,update的逆向為update等。
新聞名稱:mysql怎么保證原子性 一生回味一面微涼下載
文章地址:http://vcdvsql.cn/article0/ddsisio.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、移動網(wǎng)站建設、全網(wǎng)營銷推廣、品牌網(wǎng)站建設、App設計、關鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)