五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

軟件測試 | 什么時候使用表鎖

2023-08-04 18:00 作者:愛測軟件測試  | 我要投稿

對于InnoDB表,在絕大部分情況下都應(yīng)該使用行級鎖,因為事務(wù)和行鎖往往是我們之所以選擇的InnoDB表的理由。但在個別特殊事務(wù)中,也可以考慮使用表級鎖。

第一種情況是:事務(wù)需要更新大部分或全部數(shù)據(jù),表又比較大,如果使用默認(rèn)的行鎖,不僅這個事務(wù)執(zhí)行效率低,而且可能造成其他事務(wù)長時間鎖等待和鎖沖突,這種情況下可以考慮使用表鎖來提高該事務(wù)的執(zhí)行速度。

第二種情況是:事務(wù)涉及多個表,比較復(fù)雜,很可能引起死鎖,造成大量事務(wù)回滾。這種情況也可以考慮一次性鎖定事務(wù)涉及的表,從而避免死鎖、減少數(shù)據(jù)庫因因事務(wù)回滾帶來的開銷。

當(dāng)然,應(yīng)用中這兩種事務(wù)不能太多,否則,就應(yīng)該考慮使用MyISAM表了。

在InnoDB下,使用表鎖要注意以下兩點。

(1)使用LOCK TABLES雖然可以給InnoDB加表級鎖,但必須說明的是,表鎖不是由InnoDB存取引擎層管理的,而是由其上一層——MySQL Server負(fù)責(zé)的,僅當(dāng)autocommint=0、innodb_table_locks=1(默認(rèn)設(shè)置)時,InnoDB層才能知道MySQL加的表鎖,MySQL Server也才能感知到InnoDB加的行鎖,這種情況下,InnoDB才能自動識別涉及表級鎖的死鎖;否則,InnoDB將無法自動檢測并處理這種死鎖。

(2)在用LOCK TABLES對InnoDB表加鎖時要注意,要將AUTOCOMMIT設(shè)為0,否則MySQL不會給表加鎖;事務(wù)結(jié)束前,不要用UNLOCK TABLES釋放表鎖,因為UNLOCK TABALES會隱含地提交事務(wù);COMMIT或ROLLBACK并不能釋放用LOCK TABLES加的表級鎖,必須用UNLOCK TABLES釋放表鎖。正確的方式見如下語句:


軟件測試 | 什么時候使用表鎖的評論 (共 條)

分享到微博請遵守國家法律
宜都市| 梁山县| 葫芦岛市| 承德市| 和龙市| 宣威市| 花莲市| 永兴县| 余江县| 定日县| 贡山| 新泰市| 平利县| 平乐县| 姜堰市| 丰原市| 临潭县| 玉树县| 神池县| 文昌市| 扎兰屯市| 丹巴县| 锦州市| 甘孜县| 黑山县| 林口县| 沾益县| 富锦市| 易门县| 宁南县| 蓝田县| 沈阳市| 常宁市| 佛坪县| 盐源县| 洪江市| 井冈山市| 胶南市| 开鲁县| 湘潭市| 滨州市|