1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Update mysql-questions-01.md

This commit is contained in:
paigeman 2023-07-19 10:17:19 +08:00 committed by GitHub
parent 6694562ab5
commit cf4dc93f17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -511,8 +511,10 @@ InnoDB 行锁是通过对索引数据页上的记录加锁实现的MySQL Inno
由于 MVCC 的存在,对于一般的 `SELECT` 语句InnoDB 不会加任何锁。不过, 你可以通过以下语句显式加共享锁或排他锁。 由于 MVCC 的存在,对于一般的 `SELECT` 语句InnoDB 不会加任何锁。不过, 你可以通过以下语句显式加共享锁或排他锁。
```sql ```sql
# 共享锁 # 共享锁 可以在 MySQL 5.7 和 MySQL 8.0 中使用
SELECT ... LOCK IN SHARE MODE; SELECT ... LOCK IN SHARE MODE;
# 共享锁 可以在 MySQL 8.0 中使用
SELECT ... FOR SHARE;
# 排他锁 # 排他锁
SELECT ... FOR UPDATE; SELECT ... FOR UPDATE;
``` ```
@ -552,7 +554,10 @@ SELECT ... FOR UPDATE;
```sql ```sql
SELECT ... FOR UPDATE SELECT ... FOR UPDATE
SELECT ... LOCK IN SHARE MODE # 共享锁 可以在 MySQL 5.7 和 MySQL 8.0 中使用
SELECT ... LOCK IN SHARE MODE;
# 共享锁 可以在 MySQL 8.0 中使用
SELECT ... FOR SHARE;
``` ```
快照即记录的历史版本,每行记录可能存在多个历史版本(多版本技术)。 快照即记录的历史版本,每行记录可能存在多个历史版本(多版本技术)。
@ -575,6 +580,8 @@ SELECT ... LOCK IN SHARE MODE
SELECT...FOR UPDATE SELECT...FOR UPDATE
# 对读的记录加一个S锁 # 对读的记录加一个S锁
SELECT...LOCK IN SHARE MODE SELECT...LOCK IN SHARE MODE
# 对读的记录加一个S锁
SELECT...FOR SHARE
# 对修改的记录加一个X锁 # 对修改的记录加一个X锁
INSERT... INSERT...
UPDATE... UPDATE...