MySQL锁

2023年 10月 5日 50.5k 0

锁的分类有很多,根据颗粒度来划分有表锁和行锁,根据行为来划分有读锁和写锁。

1.表锁和行锁

表锁:对一整个表都进行限制的锁

行锁:只对特定的行限制的锁

2.读锁和写锁

读锁(read):当前会话和其他会话都可以读表,但不能修改表

写锁(write):当前会话可以读写表,但其他会话既不能写也不能读

#加锁语句 lock table table_name lock_type

#释放语句 unlock tables;

#当使用lock table语句时,其后的操作只能访问被锁定的表,而不能访问其他表

3.共享锁与排他锁

select…… lock in share mode共享锁

#别的会话可以查看但不能修改

select…… for update排他锁

#别的会话既不能修改也不能查看

4.死锁和活锁

死锁:多个进程相互占用对方需要的资源,同时又不释放,造成互相等待的现象

活锁:进程一直拿不到需要的资源,造成等待的现象。

5.悲观锁和乐观锁

悲观锁:正如其名,具有强烈的独占和怕他特性

乐观锁:避免了数据库加锁开销,大大提高了大并发量下的整体性能表现
 

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论