日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

簡單介紹MySQL中的事務(wù)機(jī)制_MySQL教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:mysql查詢區(qū)分大小寫高性能
mysql查詢默認(rèn)是不區(qū)分大小寫的 如: 效果是一樣的。 要讓mysql查詢區(qū)分大小寫,可以: 也可以在建表時(shí),加以標(biāo)識 測試30W數(shù)據(jù) 不支持索引,查詢效率底下,不建議考慮。上面這些sql語句乍看不會有什么問題,但是當(dāng)表中的數(shù)據(jù)多了以后,問題就會凸顯出來,用不到索引,

   從一個(gè)問題開始

  最近銀行這個(gè)事情鬧的比較厲害啊,很多儲戶的錢放在銀行,就不翼而飛了,而銀行還不管不問,說是用戶的責(zé)任,打官司,用戶還能輸了,這就是“社會主義”。咱還是少發(fā)牢騷,多種樹,莫談國事。

  說到銀行存錢,就不得不說一下從銀行取錢這件事情,從ATM機(jī)取錢這件簡單的事情,實(shí)際上主要分為以下幾個(gè)步驟:

  登陸ATM機(jī),輸入密碼;

  連接數(shù)據(jù)庫,驗(yàn)證密碼;

  驗(yàn)證成功,獲得用戶信息,比如存款余額等;

  用戶輸入需要取款的金額,按下確認(rèn)鍵;

  從后臺數(shù)據(jù)庫中減掉用戶賬戶上的對應(yīng)金額;

  ATM吐出錢;

  用戶把錢拿走。

  一個(gè)簡單的取錢,主要分為以上幾步。不知道大家有沒有“天真”的想過,如果在第5步中,后臺數(shù)據(jù)庫中已經(jīng)把錢減掉了,但是ATM還就是沒有吐出錢(雖然實(shí)際也發(fā)生過,但是畢竟是低概率事件),這該怎么辦?

  關(guān)于這個(gè)問題,銀行系統(tǒng)的開發(fā)人員早就想過了,那么他們是怎么來搞定這個(gè)問題的呢?這就要說到今天總結(jié)的事務(wù)這個(gè)概念了。

  簡單說說事務(wù)

  對于上面的取錢這個(gè)事情,如果有一步出現(xiàn)了錯(cuò)誤,那么就取消整個(gè)取錢的動作;簡單來說,就是取錢這7步,要么都完成,要么就啥也不做。在數(shù)據(jù)庫中,事務(wù)也是這個(gè)道理。

  事務(wù)由一條或者多條sql語句組成,在事務(wù)中的操作,這些sql語句要么都執(zhí)行,要么都不執(zhí)行,這就是事務(wù)的目的。

  對于事務(wù)而言,它需要滿足ACID特性,下面就簡要的說說事務(wù)的ACID特性。

  A,表示原子性;原子性指整個(gè)數(shù)據(jù)庫事務(wù)是不可分割的工作單位。只有使事務(wù)中所有的數(shù)據(jù)庫操作都執(zhí)行成功,整個(gè)事務(wù)的執(zhí)行才算成功。事務(wù)中任何一個(gè)sql語句執(zhí)行失敗,那么已經(jīng)執(zhí)行成功的sql語句也必須撤銷,數(shù)據(jù)庫狀態(tài)應(yīng)該退回到執(zhí)行事務(wù)前的狀態(tài);

  C,表示一致性;也就是說一致性指事務(wù)將數(shù)據(jù)庫從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N一致的狀態(tài),在事務(wù)開始之前和事務(wù)結(jié)束以后,數(shù)據(jù)庫的完整性約束沒有被破壞;

  I,表示隔離性;隔離性也叫做并發(fā)控制、可串行化或者鎖。事務(wù)的隔離性要求每個(gè)讀寫事務(wù)的對象與其它事務(wù)的操作對象能相互分離,即該事務(wù)提交前對其它事務(wù)都不可見,這通常使用鎖來實(shí)現(xiàn);

  D,持久性,表示事務(wù)一旦提交了,其結(jié)果就是永久性的,也就是數(shù)據(jù)就已經(jīng)寫入到數(shù)據(jù)庫了,如果發(fā)生了宕機(jī)等事故,數(shù)據(jù)庫也能將數(shù)據(jù)恢復(fù)。

  總結(jié)了一些事務(wù)的基本概念,在MySQL中,事務(wù)還是分為很多中的,下面就來看看到底有哪些事務(wù)。

  有哪些事務(wù)

  你能想象到嗎?就這么個(gè)破事務(wù)還會分以下這么多種:

  扁平事務(wù);

  帶有保存點(diǎn)的扁平事務(wù);

  鏈?zhǔn)聞?wù);

  嵌套事務(wù);

  分布式事務(wù)。

  現(xiàn)在就來對這些事務(wù)從概念的層面上進(jìn)行簡單的總結(jié)一下。

  扁平事務(wù)

  扁平事務(wù)是最簡單的一種,也是實(shí)際開發(fā)中使用的最多的一種事務(wù)。在這種事務(wù)中,所有操作都處于同一層次,最常見的方式如下:

  BEGIN WORK

  Operation 1

  Operation 2

  Operation 3

  ...

  Operation N

  COMMIT WORK

  或者是這種:

  BEGIN WORK

  Operation 1

  Operation 2

  Operation 3

  ...

  Operation N

  (Error Occured)

  ROLLBACK WORK

  扁平事務(wù)的主要缺點(diǎn)是不能提交或回滾事務(wù)的某一部分,或者分幾個(gè)獨(dú)立的步驟去提交。比如有這樣的一個(gè)例子,我從呼和浩特去深圳,為了便宜,我可能這么干:

  BEGIN WORK

  Operation1:呼和浩特---火車--->北京

  Operation2:北京---飛機(jī)--->深圳

  ROLLBACK WORK

  但是,如果Operation1,從呼和浩特到北京的火車晚點(diǎn)了,錯(cuò)過了航班,怎么辦?感覺扁平事務(wù)的特性,那我就需要回滾,我再回到呼和浩特,那么這樣成本是不是也太高了啊,所以就有了下面的第二種事務(wù)——帶有保存點(diǎn)的扁平事務(wù)。

  帶有保存點(diǎn)的扁平事務(wù)

  這種事務(wù)除了支持扁平事務(wù)支持的操作外,允許在事務(wù)執(zhí)行過程中回滾到同一事務(wù)中較早的一個(gè)狀態(tài),這是因?yàn)榭赡苣承┦聞?wù)在執(zhí)行過程中出現(xiàn)的錯(cuò)誤并不會對所有的操作都無效,放棄整個(gè)事務(wù)不合乎要求,開銷也太大。保存點(diǎn)用來通知系統(tǒng)應(yīng)該記住事務(wù)當(dāng)前的狀態(tài),以便以后發(fā)生錯(cuò)誤時(shí),事務(wù)能回到該狀態(tài)。

分享:WordPress如何修改Mysql數(shù)據(jù)庫的表前綴
我們知道 WordPress 的數(shù)據(jù)庫表,可以設(shè)置前綴,默認(rèn)是 wp_,很多同學(xué)也就默認(rèn)用了 wp_,如果某種原因(比如提高安全性)要修改的 WordPress 數(shù)據(jù)的前綴,我們應(yīng)該怎么做? 開始之前 修改數(shù)據(jù)是一件風(fēng)險(xiǎn)很高的工作,開始之前必然就是做好 數(shù)據(jù)庫備份 ,也可以 把博客設(shè)置

共3頁上一頁123下一頁
來源:模板無憂//所屬分類:MySQL教程/更新時(shí)間:2015-05-23
相關(guān)MySQL教程