婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于更新SQL語句理解MySQL鎖定詳解

基于更新SQL語句理解MySQL鎖定詳解

熱門標簽:外呼系統防封號違法嗎 400電話辦理都選易號網 高德地圖標注模式 電銷機器人針對的 寶應電信400電話辦理費用 高德地圖標注中心個人注冊 湘潭電銷機器人咨詢電話 如何在高德地圖標注新地址 外呼系統服務

前言

MySQL數據庫鎖是實現數據一致性,解決并發問題的重要手段。數據庫是一個多用戶共享的資源,當出現并發的時候,就會導致出現各種各樣奇怪的問題,就像程序代碼一樣,出現多線程并發的時候,如果不做特殊控制的話,就會出現意外的事情,比如“臟“數據、修改丟失等問題。所以數據庫并發需要使用事務來控制,事務并發問題需要數據庫鎖來控制,所以數據庫鎖是跟并發控制和事務聯系在一起的。

本文主要描述基于更新SQL語句來理解MySQL鎖定。下面話不多說了,來一起看看詳細的介紹吧

一、構造環境

(root@localhost) [user]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.7.23-log |
+---------------+------------+

(root@localhost) [user]> desc t1;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| n | int(11) | YES | | NULL | |
| table_name | varchar(64) | YES | | NULL | |
| column_name | varchar(64) | YES | | NULL | |
| pad | varchar(100) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+

(root@localhost) [user]> select count(*) from t1;
+----------+
| count(*) |
+----------+
| 3406 |
+----------+

(root@localhost) [user]> create unique index idx_t1_pad on t1(pad);
Query OK, 0 rows affected (0.35 sec)
Records: 0 Duplicates: 0 Warnings: 0

(root@localhost) [user]> create index idx_t1_n on t1(n);
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
(root@localhost) [user]> show index from t1;
+-------+------------+------------+--------------+-------------+-----------+-------------+------+------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Null | Index_type |
+-------+------------+------------+--------------+-------------+-----------+-------------+------+------------+
| t1 | 0 | PRIMARY | 1 | id | A | 3462 | | BTREE |
| t1 | 0 | idx_t1_pad | 1 | pad | A | 3406 | YES | BTREE |
| t1 | 1 | idx_t1_n | 1 | n | A | 12 | YES | BTREE |
+-------+------------+------------+--------------+-------------+-----------+-------------+------+------------+
select 'Leshami' author,'http://blog.csdn.net/leshami' Blog;
+---------+------------------------------+
| author | Blog |
+---------+------------------------------+
| Leshami | http://blog.csdn.net/leshami |
+---------+------------------------------+

二、基于主鍵更新

(root@localhost) [user]> start transaction;
Query OK, 0 rows affected (0.00 sec)

(root@localhost) [user]> update t1 set table_name='t1' where id=1299;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

SELECT trx_id,
 trx_state,
 trx_started,
 trx_mysql_thread_id,
 trx_tables_locked,
 trx_rows_locked,
 trx_rows_modified,
 trx_isolation_level
FROM INFORMATION_SCHEMA.INNODB_TRX \G

-- 從下面的結果可知,trx_rows_locked,一行被鎖定 
*************************** 1. row ***************************
 trx_id: 6349647
 trx_state: RUNNING
 trx_started: 2018-11-06 16:54:12
trx_mysql_thread_id: 2
 trx_tables_locked: 1
 trx_rows_locked: 1
 trx_rows_modified: 1
trx_isolation_level: REPEATABLE READ 

(root@localhost) [user]> rollback;
Query OK, 0 rows affected (0.01 sec)

三、基于二級唯一索引

(root@localhost) [user]> start transaction;
Query OK, 0 rows affected (0.00 sec)

(root@localhost) [user]> update t1 set table_name='t2' where pad='4f39e2a03df3ab94b9f6a48c4aecdc0b';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

SELECT trx_id,
 trx_state,
 trx_started,
 trx_mysql_thread_id,
 trx_tables_locked,
 trx_rows_locked,
 trx_rows_modified,
 trx_isolation_level
FROM INFORMATION_SCHEMA.INNODB_TRX \G

-- 從下面的查詢結果可知,trx_rows_locked,2行被鎖定
*************************** 1. row ***************************
 trx_id: 6349649
 trx_state: RUNNING
 trx_started: 2018-11-06 16:55:22
trx_mysql_thread_id: 2
 trx_tables_locked: 1
 trx_rows_locked: 2
 trx_rows_modified: 1
trx_isolation_level: REPEATABLE READ 

(root@localhost) [user]> rollback;
Query OK, 0 rows affected (0.00 sec)

三、基于二級非唯一索引

(root@localhost) [user]> start transaction;
Query OK, 0 rows affected (0.00 sec)

(root@localhost) [user]> update t1 set table_name='t3' where n=8;
Query OK, 350 rows affected (0.01 sec)
Rows matched: 351 Changed: 351 Warnings: 0

SELECT trx_id,
 trx_state,
 trx_started,
 trx_mysql_thread_id,
 trx_tables_locked,
 trx_rows_locked,
 trx_rows_modified,
 trx_isolation_level
FROM INFORMATION_SCHEMA.INNODB_TRX \G
 
--從下面的查詢結果可知,703行被鎖定
*************************** 1. row ***************************
  trx_id: 6349672
  trx_state: RUNNING
 trx_started: 2018-11-06 17:06:53
trx_mysql_thread_id: 2
 trx_tables_locked: 1
 trx_rows_locked: 703
 trx_rows_modified: 351
trx_isolation_level: REPEATABLE READ

(root@localhost) [user]> rollback;
Query OK, 0 rows affected (0.00 sec)

四、無索引更新

(root@localhost) [user]> start transaction;
Query OK, 0 rows affected (0.00 sec)

(root@localhost) [user]> update t1 set table_name='t4' where column_name='id';
Query OK, 26 rows affected (0.00 sec)
Rows matched: 26 Changed: 26 Warnings: 0

SELECT trx_id,
 trx_state,
 trx_started,
 trx_mysql_thread_id,
 trx_tables_locked,
 trx_rows_locked,
 trx_rows_modified,
 trx_isolation_level
FROM INFORMATION_SCHEMA.INNODB_TRX \G

-- 從下面的查詢結果可知,trx_rows_locked,3429行被鎖定,而被更新的僅僅為26行
-- 而且這個結果超出了表上的總行數3406
*************************** 1. row ***************************
  trx_id: 6349674
  trx_state: RUNNING
 trx_started: 2018-11-06 17:09:41
trx_mysql_thread_id: 2
 trx_tables_locked: 1
 trx_rows_locked: 3429
 trx_rows_modified: 26
trx_isolation_level: REPEATABLE READ

(root@localhost) [user]> rollback;
Query OK, 0 rows affected (0.00 sec)

-- 也可以通過show engine innodb status進行觀察

show engine innodb status\G

------------
TRANSACTIONS
------------
Trx id counter 6349584
Purge done for trx's n:o  0 undo n:o  0 state: running but idle
History list length 0
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 421943222819552, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
---TRANSACTION 6349583, ACTIVE 2 sec
2 lock struct(s), heap size 1136, 1 row lock(s), undo log entries 1


------------
TRANSACTIONS
------------
Trx id counter 6349586
Purge done for trx's n:o  6349585 undo n:o  0 state: running but idle
History list length 1
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 421943222819552, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
---TRANSACTION 6349585, ACTIVE 8 sec
3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1
MySQL thread id 2, OS thread handle 140467640694528, query id 29 localhost root

五、鎖相關查詢SQL

1:查看當前的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2:查看當前鎖定的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

3:查看當前等鎖的事務

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

SELECT trx_id,
 trx_state,
 trx_started,
 trx_mysql_thread_id thr_id,
 trx_tables_locked tb_lck,
 trx_rows_locked rows_lck,
 trx_rows_modified row_mfy,
 trx_isolation_level is_lvl
FROM INFORMATION_SCHEMA.INNODB_TRX;

SELECT r.`trx_id` waiting_trx_id,
 r.`trx_mysql_thread_id` waiting_thread,
 r.`trx_query` waiting_query,
 b.`trx_id` bolcking_trx_id,
 b.`trx_mysql_thread_id` blocking_thread,
 b.`trx_query` block_query
FROM information_schema.`INNODB_LOCK_WAITS` w
 INNER JOIN information_schema.`INNODB_TRX` b
 ON b.`trx_id` = w.`blocking_trx_id`
 INNER JOIN information_schema.`INNODB_TRX` r
 ON r.`trx_id` = w.`requesting_trx_id`;

六、小結

1、MySQL表更新時,對記錄的鎖定根據更新時where謂詞條件來確定鎖定范圍

2、對于聚簇索引過濾,由于索引即數據,因為僅僅鎖定更新行,這是由聚簇索引的性質決定的

3、對于非聚簇唯一索引過濾,由于需要回表,因此鎖定為唯一索引過濾行數加上回表行數

4、對于非聚簇非唯一索引過濾,涉及到了間隙鎖,因此鎖定的記錄數更多

5、如果過濾條件無任何索引或無法使用到索引,則鎖定整張表上所有數據行

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Mysql數據庫鎖定機制詳細介紹
  • mysql鎖定單個表的方法
  • mysql 事務處理及表鎖定深入簡析
  • MySQL中的行級鎖定示例詳解

標簽:賀州 馬鞍山 黔南 佛山 宿遷 南充 蘭州 黃山

巨人網絡通訊聲明:本文標題《基于更新SQL語句理解MySQL鎖定詳解》,本文關鍵詞  基于,更新,SQL,語句,理解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于更新SQL語句理解MySQL鎖定詳解》相關的同類信息!
  • 本頁收集關于基于更新SQL語句理解MySQL鎖定詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩不卡免费视频| 在线欧美日韩精品| 亚洲第一电影网| 无码av免费一区二区三区试看 | 亚洲欧洲无码一区二区三区| 亚洲激情图片小说视频| 欧美日韩一级视频| 久久网站最新地址| 91丝袜美女网| 成人性生交大片免费看视频在线| 石原莉奈在线亚洲二区| 天堂在线亚洲视频| 亚洲免费视频中文字幕| 日韩欧美卡一卡二| 欧美一区二区在线不卡| 欧美va亚洲va| 成人av动漫在线| 欧美96一区二区免费视频| 亚洲成人av一区| 美腿丝袜在线亚洲一区 | 亚洲综合在线第一页| 午夜在线成人av| 日韩av中文字幕一区二区三区| 欧美一区永久视频免费观看| 国产成人综合在线观看| 精品成人私密视频| 久久综合av免费| 777午夜精品免费视频| 国产精品久久久爽爽爽麻豆色哟哟 | 日韩欧美国产综合| 成人精品gif动图一区| 91视频免费播放| 99久久国产综合精品色伊| 色综合久久久久| 欧美成人一区二区三区片免费| 91在线国内视频| 欧美一区二区视频观看视频| 欧美午夜精品一区二区三区| 日韩精品一二三四| 91美女片黄在线| 日韩精品一区二区三区四区视频| 国产精品乱子久久久久| 免费观看一级欧美片| 欧美疯狂性受xxxxx喷水图片| 久久久久久一二三区| 亚洲男人电影天堂| 麻豆91免费看| 欧美人伦禁忌dvd放荡欲情| 欧美精品一区二区精品网| 久久久亚洲国产美女国产盗摄| 日韩一级二级三级| 欧美一区二区日韩| 91丨九色丨尤物| 国产女主播视频一区二区| 亚洲福利视频一区二区| 99re成人在线| 香蕉成人啪国产精品视频综合网| 国产性色一区二区| 国产日韩欧美一区二区三区综合| 日韩高清不卡一区二区三区| 国产亚洲精品久| 欧美一区二区三区在线视频| 欧美一区二区视频在线观看2020| 色婷婷综合久久久久中文一区二区 | 欧美日韩高清一区二区三区| 99国产精品久久久久| 风间由美一区二区三区在线观看| 日韩 欧美一区二区三区| 日韩电影一区二区三区四区| 一区二区三区日韩| 亚洲综合在线五月| 亚洲高清免费一级二级三级| 7777精品伊人久久久大香线蕉 | 国产又黄又大久久| 狠狠色丁香九九婷婷综合五月| 日韩国产高清影视| 日本va欧美va精品发布| 久久不见久久见免费视频1| 秋霞电影网一区二区| 国产一区二区三区四区五区美女 | 国产午夜精品理论片a级大结局 | 久久麻豆一区二区| 久久只精品国产| 欧美一区二区播放| 一区二区三区日韩| 免费在线观看精品| 日本 国产 欧美色综合| 久久er精品视频| av电影在线观看一区| 成人av高清在线| 色婷婷综合久久久久中文| 欧美日韩精品一区二区天天拍小说 | 爽爽淫人综合网网站| 中文字幕一区在线观看视频| 亚洲人精品一区| 91精品国产综合久久婷婷香蕉| 欧美日韩激情一区二区| 亚洲美女区一区| 天堂蜜桃91精品| 久久国产剧场电影| 国产在线视视频有精品| 成人av网站在线| 欧美日韩精品高清| 久久午夜免费电影| 国产欧美一区二区精品忘忧草| 亚洲人成7777| 国产精品 日产精品 欧美精品| 91黄色激情网站| 久久久九九九九| 午夜精品一区二区三区免费视频 | 日韩区在线观看| 国产精品国产三级国产| 欧美日韩亚州综合| 精品成人a区在线观看| 亚洲久草在线视频| 久久99精品久久久久久动态图 | 成年人国产精品| 欧美高清视频在线高清观看mv色露露十八| 91麻豆精品国产91久久久资源速度 | 麻豆精品视频在线观看| 成人精品国产一区二区4080 | 国产精品久久久久久久久图文区 | 在线亚洲+欧美+日本专区| 91精品国产美女浴室洗澡无遮挡| 亚洲精品欧美二区三区中文字幕| 蜜臀av性久久久久蜜臀aⅴ四虎 | 午夜日韩在线观看| 亚洲精品高清视频在线观看| 韩国成人在线视频| 欧美三级电影在线看| 国产午夜精品久久久久久免费视 | 亚洲福利视频一区| 亚洲一区二区三区四区在线观看 | 色拍拍在线精品视频8848| 日韩午夜激情av| 国产婷婷一区二区| 久久国产麻豆精品| 欧美性猛片xxxx免费看久爱| 日韩欧美电影一区| 亚洲日本在线观看| 成人av在线看| 日韩视频在线观看一区二区| 欧美精品九九99久久| 亚洲一区二区精品视频| 国产精品久久久久久久第一福利| 午夜精品久久久久久久久久| 在线播放视频一区| 亚洲色欲色欲www在线观看| 不卡区在线中文字幕| 一区二区三区电影在线播| 97久久精品人人爽人人爽蜜臀| 中文字幕在线不卡| 欧美唯美清纯偷拍| 日本在线不卡一区| 久久久久久99久久久精品网站| 韩国成人精品a∨在线观看| 精品sm在线观看| 成人高清伦理免费影院在线观看| 日本一区二区久久| 欧美伊人久久大香线蕉综合69| 亚洲不卡av一区二区三区| 91精品欧美福利在线观看| 国产91高潮流白浆在线麻豆| 亚洲欧洲美洲综合色网| 久久久亚洲综合| 91美女片黄在线观看| 午夜精品久久久久久久久久久| 日本一区二区电影| 日韩 欧美一区二区三区| 日韩欧美国产电影| 在线观看三级视频欧美| 26uuu欧美日本| 在线播放视频一区| 亚洲精品成人a在线观看| 国产一区在线观看麻豆| 国产免费久久精品| 色狠狠色狠狠综合| 久久99国产精品麻豆| 久久亚洲精品小早川怜子| 91免费看视频| 久久不见久久见免费视频7| 欧美日韩一区精品| 国产精一区二区三区| 日本一区二区在线不卡| 久久久久国产精品麻豆| 欧美日韩精品电影| 色天天综合久久久久综合片| 国产一区二区三区美女| 波多野结衣亚洲一区| 一区二区三区在线视频播放| 欧美一级高清片在线观看| 色婷婷久久久综合中文字幕| 欧美国产97人人爽人人喊| 欧美午夜精品久久久久久孕妇| 亚洲精品国产精华液| 91浏览器打开| 成人中文字幕在线| 日本一不卡视频| 亚洲女同ⅹxx女同tv| 中文字幕五月欧美|