表的共享、独占锁:
共享锁:
类似于 JUC 下的 ReentrantReadWriteLock 下的 读锁。多个事务可以同时为数据加锁,同时访问到数据。
独占锁:
类似于 JUC 下的 ReentrantReadWriteLock 下的 写锁。同一时间,只能有一个事务获取为数据加锁。
只能有一个事务访问到数据
不同存储引擎的锁:
默认情况下:在对某个表执行SELECT、INSERT、DELETE、UPDATE语句时
(1): InnoDB 是不会为这个表添加表级别的 S锁 或者 X锁 的, Innodb 添加的锁一般都是行级别的锁
(2):MyISAM 添加的锁一定是表级别的锁,MyISAM 不支持行级别的锁
注:我们可以通过使用以下命令为 Innodb 加上表级别的锁
LOCK TABLES t READ :对表 t 加表级别的 共享锁
LOCK TABLES t WRITE :对表 t 加表级别的 独占锁
MyISAM 引擎也要通过 以上命令手动加锁,在访问数据时,MyISAM默认不加锁