mysql snapshot read快照讀及current read當前讀與鎖lock之一

wisdomone1發表於2019-11-29

前言

       mysql讀操作分為2種型別:snapshot read及current read,前者基於mysql mvcc實現,讀取資料塊是undo block,後者是基於當前資料塊。這2種不同的讀取型別與鎖的關係是什麼,本文作一點兒簡要的記錄。

聯絡方式

  • 微信公眾號

  • 微信

目錄

snapshot read是否加鎖

  snapshot read由於操作非當前資料塊,不會加鎖


current read加鎖2種型別

  •  x   --排它鎖

  •  s   --共享鎖


current read幾種操作場景

查詢current read不同操作場景持鎖語句

(注:關注列lock_mode)

mysql> select * from information_schema.innodb_locks;
+-------------------------+-----------------+-----------+-----------+------------------+-----------------+------------+-----------+----------+----------------+
| lock_id                 | lock_trx_id     | lock_mode | lock_type | lock_table       | lock_index      | lock_space | lock_page | lock_rec | lock_data      |
+-------------------------+-----------------+-----------+-----------+------------------+-----------------+------------+-----------+----------+----------------+
| 11909:473:3:2           | 11909           | X         | RECORD    | `zxydb`.`t_read` | GEN_CLUST_INDEX |        473 |         3 |        2 | 0x00000836F561 |
| 421207096970864:473:3:2 | 421207096970864 | S         | RECORD    | `zxydb`.`t_read` | GEN_CLUST_INDEX |        473 |         3 |        2 | 0x00000836F561 |
+-------------------------+-----------------+-----------+-----------+------------------+-----------------+------------+-----------+----------+----------------+
2 rows in set, 1 warning (0.00 sec)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-2666289/,如需轉載,請註明出處,否則將追究法律責任。

相關文章