成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL Next-Key Lock 加鎖范圍總結

數據庫 MySQL
三篇文章分別通過實際操作,介紹了主鍵、非主鍵唯一索引、普通索引、普通字段四個方面介紹了加鎖的范圍。

 [[404427]]

前言

三篇文章分別通過實際操作,介紹了主鍵、非主鍵唯一索引、普通索引、普通字段四個方面介紹了加鎖的范圍。

本篇文章再做一個總結。

1data_locks

  1. select * from performance_schema.data_locks; 
LOCK_MODE LOCK_DATA 鎖范圍
X,REC_NOT_GAP 15 15 那條數據的行鎖
X,GAP 15 15 那條數據之前的間隙,不包含 15
X 15 15 那條數據的間隙,包含 15
  1. LOCK_MODE = X 是前開后閉區間;
  2. X,GAP 是前開后開區間(間隙鎖);
  3. X,REC_NOT_GAP 行鎖。

這個單獨介紹,是希望我理解的沒有錯誤,如果大佬看到了,錯誤之處一定要幫忙指正出來。

2主鍵索引

  1. 加鎖時,會先給表添加意向鎖,IX 或 IS;
  2. 加鎖是如果是多個范圍,是分開加了多個鎖,每個范圍都有鎖;(這個可以實踐下 id < 20 的情況)
  3. 主鍵等值查詢,數據存在時,會對該主鍵索引的值加行鎖 X,REC_NOT_GAP;
  4. 主鍵等值查詢,數據不存在時,會對查詢條件主鍵值所在的間隙添加間隙鎖 X,GAP;
  5. 主鍵等值查詢,范圍查詢時情況則比較復雜:

8.0.17 版本是前開后閉,而 8.0.18 版本及以后,修改為了前開后開區間;

臨界 <= 查詢時,8.0.17 會鎖住下一個 next-key 的前開后閉區間,而 8.0.18 及以后版本,修復了這個 bug。

3非主鍵唯一索引

  • 非主鍵唯一索引等值查詢,數據存在,for update 是會在主鍵加鎖的,而 for share 只有在走覆蓋索引的情況下,會僅在自己索引上加鎖;
  • 非主鍵索引等值查詢,數據不存在,無論是否索引覆蓋,相當于一個范圍查詢,僅僅會在非主鍵索引上加鎖,加的還是間隙鎖,前開后開區間;
  • 在非主鍵唯一索引范圍查詢時,不是覆蓋索引的時候,會對相應的范圍加前開后閉區間,并且如果存在數據,會對對應的主鍵加行鎖;
  • 在非主鍵唯一索引范圍查詢時,如果是覆蓋索引時,會對所有的后閉區間對應的主鍵,加行鎖;
  • 在非主鍵唯一索引加鎖時,還是存在 next-key 鎖住下一個區間的 bug。

4普通索引

普通索引等值查詢,因為不能確定唯一性,所以即使定位到記錄,也是會向后查詢,直到查詢到不為該值的記錄,從而鎖定該值的區間;

普通索引的鎖也是加載該索引上的,如果涉及到存在的記錄,會對該主鍵加行鎖;

普通索引的范圍查詢,同樣出現 next-key 查詢下一個區間的 bug。

5普通字段

普通字段查詢,會查詢全表,這里鎖的話就會鎖住主鍵的所有區間。

6總結

通過實際操作,最大的感受就是不能眼高手低,看書也好,看文章也罷,一定要實際操作。

紙上得來終覺淺。

本文轉載自微信公眾號「程序員小航」,可以通過以下二維碼關注。轉載本文請聯系程序員小航公眾號。

 

責任編輯:武曉燕 來源: 程序員小航
相關推薦

2021-06-05 18:02:20

MySQL加鎖范圍

2025-04-24 10:56:01

MySQLInnoDB數據庫鎖

2024-06-12 14:03:31

MySQLInnoDB

2022-04-29 11:39:28

MySQL幻讀Gap Lock

2021-06-06 13:03:53

MySQL普通索引

2023-06-05 08:15:30

MySQLInnoDB

2017-05-15 18:00:43

MySQ加鎖處理

2010-03-05 16:38:48

Python應用范圍

2020-12-14 12:17:47

MySQL記錄語句

2024-01-02 14:17:31

MySQLMDL LOCK語句

2020-07-16 21:20:08

數據庫MySQL死鎖

2017-08-30 18:15:54

MySql

2020-07-07 07:47:07

Java無鎖技術

2009-12-23 16:00:50

ADO.NET Ent

2009-10-29 10:21:46

VB.NET變量適用范

2021-11-11 13:05:25

MySQLINSERT

2021-03-02 12:34:47

MySQL解鎖表鎖定表

2023-03-27 17:58:34

MySQL加鎖間隙鎖

2017-06-02 08:48:29

互斥鎖JavaCAS

2021-01-28 05:17:01

并發包JDK
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一区二区 | 久久久久国产精品午夜一区 | 亚洲视频在线观看 | 亚洲精品自在在线观看 | 亚洲精品麻豆 | 久久九七 | 久久精品国产一区二区三区不卡 | 精品中文字幕一区二区 | 视频一区在线观看 | 一级片在线免费看 | 亚洲精品一区中文字幕乱码 | 国产一区二区三区精品久久久 | 午夜精品久久 | 7777在线视频 | 国产激情三区 | 国产精品久久久久久久久久久久久久 | 一区二区三区四区视频 | 国产精品一区二区视频 | 久产久精国产品 | 黄色国产大片 | av日韩一区 | 欧美专区日韩 | 日本午夜网站 | 国产精品一区二区免费看 | 亚洲性人人天天夜夜摸 | 国产午夜在线 | 国产丝袜一区二区三区免费视频 | 色视频欧美| 伊人爽 | 国产一级片在线播放 | 精品一区二区视频 | 日韩一区欧美一区 | av资源在线看 | www.成人.com | 免费成人毛片 | 最新国产精品视频 | 日本三级在线视频 | 日韩在线观看网站 | 一级黄色录像毛片 | 中文字幕日韩欧美一区二区三区 | 日日天天 |