亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySql 知識點之事務、索引、鎖原理與用法解析

2020-01-18 20:41:40
字體:
來源:轉載
供稿:網友

本文實例講述了MySql 知識點之事務、索引、鎖原理與用法。分享給大家供大家參考,具體如下:

事務

  • 事務概念

事務就是一組原子性的SQL查詢,或者說一個獨立的工作單元。如果數據庫引擎執行一組操作語句,那么久執行所有的操作,如果其中有任何一條崩潰或其他原因無法執行,所有語句將不會執行。也就是說事務內的語句,要么全部執行成功,要么全部執行失敗。

  • 事務特性ACID
    • 原子性(atomicity)

    一個事務被視為最小工作單元,不可拆分,整個事務所有的操作要么全部提交成功,要么全部失敗回滾,不可只執行部分。

    • 一致性(consistency)

    數據庫從一個一致性的狀態轉換到另外一個一致性的狀態。數據庫某個狀態下符合所有的完整性約束的狀態。

    • 隔離性(isolation)

    通常來說,一個事務所做的修改在最終提交前,對其他事務是不可見的。此時應該保證各個事務要進行隔離,事務之間不可相互干擾。

    • 持久性(durability)

    一旦事務提交,所有的修改會永久保存到數據庫中。此時即使系統崩潰,修改的數據也不會丟失。

  • 事務的隔離級別
    • READ UNCOMMITTED(未提交讀)

    事務中的修改,即使沒有提交,對其他事務也是可見的,事務可以讀取未提交的數據,造成臟讀,也會造成不可重復。

    • READ COMMITTED(提交讀)

    大多數數據庫的默認級別是READ COMMITTED(MySQL默認REPEATABLE READ),該級別事務解決了臟讀,但是會出現不可重復讀,因為兩次執行同樣的查詢,查詢結果不一樣。

    • REPEATABLE READ(可重復讀)

    該級別解決了臟讀,保證可重復讀,但是理論上,可重復讀隔離級別還是無法解決幻讀,所謂幻讀,指的是黨某個事物在讀取某個范圍內的記錄時,另外一個事務又在該范圍內插入了新的記錄。InnoDB和XtraDB存儲引擎通過多版本并發控制MVVC解決了幻讀的問題。

    • SERIALIZABLE(可串行化)

    可串行化是隔離最高級,它強制了事務串行執行,完全避免了幻讀,簡單來說SERIALIZABLE會在讀取的每一行加鎖,所以會導致大量的等待超時和鎖爭用的問題,實際開發中很少使用。

索引

  • 索引概念

索引是存儲引擎用戶快速找到記錄的一種數據結構,舉例

SELECT userName FROM user WHERE userId = 1;

如果在userId列上加上索引,則MySQL將使用該索引找到userId的行,也就是說,MySQL先在索引上按值進行查找,然后返回所有包含該值的數據行。

  • 索引方式
    • B-Tree索引

    使用B-Tree數據結構來存儲數據,大多MySQL引擎都支持該索引。B-Tree索引可以加快訪問數據的速度,因為B-Tree對索引列順序組織存儲,范圍查找快。

    • hash索引

    哈希索引基本哈希表實現,只有精確匹配索引所有列的查詢才有效。對于每一行數據,存儲引擎都會對所有的索引列計算一個哈希碼,哈希碼值較小。哈希索引將所有的哈希碼存儲在索引中,同時在哈斯表中保存指向每個數據行的指針。MySQL中只有Memory引擎顯示支持哈希索引。

  • 索引類型
    • 普通索引

    主要任務加快對數據的訪問

    • 唯一索引

    普通索引是允許數據重復的,如果確定了某列數據不會重復,則可創建唯一索引,唯一索引有兩個好處,索引更有效:插入新數據,如果重復,MySQL拒絕插入。

    • 主鍵索引

    主鍵本身默認創建索引

    • 全文索引

    文本字段上的普通索引只能加快對出現在字段內最前面的字符串進行的檢索操作,如果字段里存放的是由幾個或者多個單詞構成的大段文字,普通索引就不行了,這種場合用全文索引比較合適

    查詢效率:唯一索引>自增主鍵>主鍵

    插入:主鍵>自增主鍵>唯一索引

在這里我們主要討論下行級鎖

  • 表級

引擎MyISAM,可以理解為鎖整張表,可以同時讀,不可以同時寫。在鎖定期間,其它進程無法對該表進行寫操作,如果是寫鎖,則其它進程則不允許讀。

  • 行級

引擎INNODB,單獨一行記錄加鎖,可以同時讀,不可同時寫。行級鎖開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,并發度也最高。

  • InnoDB鎖行

由于InnoDB預設是Row-Level Lock,所以只有[明確]的指定主鍵,MySQL才會執行Row lock,否則MySQL將會執行Table Lock

例1:(明確指定主鍵,并且有此記錄,Row Lock)

SELECT * FROM products WHERE id='3' FOR UPDATE;SELECT * FROM products WHERE id='3' and type=1 FOR UPDATE;

例2: (明確指定主鍵,若查無此記錄,無lock)

SELECT * FROM products WHERE id='-1' FOR UPDATE;

例3: (無主鍵,table lock)

SELECT * FROM products WHERE name='Mouse' FOR UPDATE;

例4: (主鍵不明確,table lock)

SELECT * FROM products WHERE id<>'3' FOR UPDATE;

例5: (主鍵不明確,table lock)

SELECT * FROM products WHERE id LIKE '3' FOR UPDATE;

注1: FOR UPDATE僅適用于InnoDB,且必須在交易區塊(BEGIN/COMMIT)中才能生效。
注2: 要測試鎖定的狀況,可以利用MySQL的Command Mode ,開二個視窗來做測試。

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總

希望本文所述對大家MySQL數據庫計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91对白在线播放| 97在线视频国产| 亚洲国产成人精品女人久久久| 欧美日韩午夜激情| 91九色国产视频| 亚洲一区二区三区四区视频| 一个人看的www久久| 狠狠躁夜夜躁久久躁别揉| 欧美亚洲免费电影| 亚洲自拍小视频免费观看| 欧美激情精品久久久久久久变态| 成人免费淫片aa视频免费| 国产成人精品视频在线观看| 奇米4444一区二区三区| 久久成人精品一区二区三区| 久久99青青精品免费观看| 欧美尤物巨大精品爽| 97精品国产97久久久久久| 精品久久香蕉国产线看观看亚洲| 国产精品白丝av嫩草影院| 成人黄色免费网站在线观看| 国产精品视频免费在线观看| 亚洲黄色av网站| 精品国内自产拍在线观看| 欧美激情亚洲视频| 成人性生交大片免费观看嘿嘿视频| 亚洲国产精品99| 成人黄色午夜影院| 成人日韩在线电影| 91久久国产精品| 欧美日韩国产一区二区| 国模私拍一区二区三区| 国产精品久久久久秋霞鲁丝| 亚洲人成电影在线观看天堂色| 九色91av视频| 最近2019年好看中文字幕视频| 欧美高清性猛交| 国产日本欧美一区二区三区在线| 在线激情影院一区| 精品国产一区二区三区四区在线观看| 欧洲美女7788成人免费视频| 亚洲а∨天堂久久精品9966| 中文字幕不卡av| 日韩欧美中文字幕在线播放| 最新69国产成人精品视频免费| 国产精品电影在线观看| 日韩久久精品成人| 欧美性猛交xxxx乱大交3| 国产精品久久视频| 97人人爽人人喊人人模波多| 欧美俄罗斯性视频| 亚洲欧美中文日韩v在线观看| 狠狠爱在线视频一区| 日韩欧美aⅴ综合网站发布| 97国产suv精品一区二区62| 国产中文字幕日韩| 亚洲精品白浆高清久久久久久| 最近2019中文字幕第三页视频| 亚洲精品久久久久久下一站| 亚洲r级在线观看| 秋霞av国产精品一区| 日本高清视频精品| 992tv成人免费视频| 午夜精品一区二区三区在线视频| 欧美性生交大片免费| 精品爽片免费看久久| 欧美精品18videos性欧| 91黑丝高跟在线| 日本高清视频精品| 亚洲国产精品va在线看黑人| 欧美午夜www高清视频| 国产亚洲精品一区二555| 精品精品国产国产自在线| 亚洲国产精品va在线观看黑人| 亚洲第一中文字幕在线观看| 国产精品激情av电影在线观看| 日韩电影视频免费| 91精品在线影院| 亚洲欧洲偷拍精品| 国产精品极品美女在线观看免费| 在线观看日韩www视频免费| 国产精品久久久久国产a级| 成人黄色av网| 97碰碰碰免费色视频| 国内揄拍国内精品| 亚洲欧美一区二区三区久久| 久久久这里只有精品视频| 精品一区二区亚洲| 2019亚洲男人天堂| 欧美激情综合亚洲一二区| 77777少妇光屁股久久一区| 日韩精品高清视频| 国产在线98福利播放视频| 欧美日韩爱爱视频| 久久免费成人精品视频| 在线观看国产欧美| 最近中文字幕mv在线一区二区三区四区| 欧美黄色成人网| 亚洲综合视频1区| 欧美极品在线视频| 欧美wwwwww| 91免费综合在线| 亚洲精品一区二区在线| 欧美激情视频在线| 粉嫩av一区二区三区免费野| 欧美国产日产韩国视频| 亚洲免费av电影| 亚洲欧美色图片| 成人自拍性视频| 538国产精品一区二区免费视频| 久久久久久18| 亚洲人高潮女人毛茸茸| 亚洲天堂开心观看| 91在线观看欧美日韩| 欧美日韩亚洲天堂| 欧美国产日韩一区二区在线观看| 亚洲激情视频网| 欧美日韩在线看| 最近日韩中文字幕中文| 日韩hd视频在线观看| 日韩精品在线观看一区二区| 亚洲视频777| 欧美性理论片在线观看片免费| 久久久久久亚洲| 亚洲最大福利视频| 亚洲国产91精品在线观看| 久久久99久久精品女同性| 亚洲美女免费精品视频在线观看| 久久久噜噜噜久久| 久久天天躁狠狠躁老女人| 精品中文字幕在线2019| 日韩日本欧美亚洲| 日本精品视频在线播放| 亚洲国产第一页| 在线观看欧美日韩国产| 日韩av在线免费观看| 最新日韩中文字幕| 91中文在线视频| 成人国产精品日本在线| 成人免费视频a| 怡红院精品视频| 日韩av影视综合网| 欧美日韩一区二区免费视频| 欧美中文在线观看| 久久成人精品视频| 97福利一区二区| 亚洲网在线观看| 久久夜色精品国产欧美乱| 久久精品一区中文字幕| 亚洲欧美日韩天堂| 九九久久久久久久久激情| 欧美成人精品一区二区三区| 一区二区欧美日韩视频| 欧美激情在线一区| 永久免费精品影视网站| 欧美亚州一区二区三区| 久久免费视频在线| 国产亚洲精品久久久久久777| 免费91麻豆精品国产自产在线观看| 成人黄色生活片| 亚洲香蕉在线观看| 色青青草原桃花久久综合| 欧美性视频精品| 免费不卡在线观看av|