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

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

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

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

  InnoDB存儲(chǔ)引擎提供事務(wù)的隔離級(jí)別有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE。這些隔離級(jí)別之間的區(qū)別如下:

2015413170207554.jpg (782×217)

  臟讀:一個(gè)事務(wù)讀取到了另外一個(gè)事務(wù)沒(méi)有提交的數(shù)據(jù);

  比如:事務(wù)T1更新了一行記錄的內(nèi)容,但是并沒(méi)有提交所做的修改。事務(wù)T2讀取到了T1更新后的行,然后T1執(zhí)行回滾操作,取消了剛才所做的修改�,F(xiàn)在T2所讀取的行就無(wú)效了;

  不可重復(fù)讀:在同一事務(wù)中,兩次讀取同一數(shù)據(jù),得到內(nèi)容不同;

  比如:事務(wù)T1讀取一行記錄,緊接著事務(wù)T2修改了T1剛才讀取的那一行記錄。然后T1又再次讀取這行記錄,發(fā)現(xiàn)與剛才讀取的結(jié)果不同。這就稱(chēng)為“不可重復(fù)”讀,因?yàn)門(mén)1原來(lái)讀取的那行記錄已經(jīng)發(fā)生了變化;

  幻讀:同一事務(wù)中,用同樣的操作讀取兩次,得到的記錄數(shù)不相同;

  比如:事務(wù)T1讀取一條指定的WHERE子句所返回的結(jié)果集。然后事務(wù)T2新插入 一行記錄,這行記錄恰好可以滿(mǎn)足T1所使用的查詢(xún)條件中的WHERE子句的條件。然后T1又使用相同的查詢(xún)?cè)俅螌?duì)表進(jìn)行檢索,但是此時(shí)卻看到了事務(wù)T2剛才插入的新行。這個(gè)新行就稱(chēng)為“幻像”,因?yàn)閷?duì)T1來(lái)說(shuō)這一行就像突然出現(xiàn)的一樣。

  隔離級(jí)別越低,事務(wù)請(qǐng)求的鎖越少或保持鎖的時(shí)間就越短。InnoDB存儲(chǔ)引擎默認(rèn)的支持隔離級(jí)別是REPEATABLE READ;在這種默認(rèn)的事務(wù)隔離級(jí)別下已經(jīng)能完全保證事務(wù)的隔離性要求,即達(dá)到SQL標(biāo)準(zhǔn)的SERIALIZABLE級(jí)別隔離。

  我們可以可以用SET TRANSACTION語(yǔ)句改變單個(gè)會(huì)話(huà)或者所有新進(jìn)連接的隔離級(jí)別。它的語(yǔ)法如下:

  SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

  注意:默認(rèn)的行為(不帶session和global)是為下一個(gè)(未開(kāi)始)事務(wù)設(shè)置隔離級(jí)別。如果使用GLOBAL關(guān)鍵字,語(yǔ)句在全局對(duì)從那點(diǎn)開(kāi)始創(chuàng)建的所有新連接(除了不存在的連接)設(shè)置默認(rèn)事務(wù)級(jí)別。你需要SUPER權(quán)限來(lái)做這個(gè)。使用SESSION 關(guān)鍵字為將來(lái)在當(dāng)前連接上執(zhí)行的事務(wù)設(shè)置默認(rèn)事務(wù)級(jí)別。 任何客戶(hù)端都能自由改變會(huì)話(huà)隔離級(jí)別(甚至在事務(wù)的中間),或者為下一個(gè)事務(wù)設(shè)置隔離級(jí)別。

  mysql> set session transaction isolation level repeatable read;

  Query OK, 0 rows affected (0.00 sec)

  mysql> select @@tx_isolation;

  +-----------------+

  | @@tx_isolation |

  +-----------------+

  | REPEATABLE-READ |

  +-----------------+

  1 row in set (0.00 sec)

  總結(jié)

  這篇文章,基本上都是理論概念的堆積,實(shí)戰(zhàn)的東西基本沒(méi)有。但是,這些都不是問(wèn)題,這也無(wú)法阻擋這篇文章成為一篇讀者喜歡的文章,是吧。好了,這篇關(guān)于MySQL中事務(wù)的文章就到此結(jié)束,以后如果有新的東西,就接著總結(jié)。

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

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