Delete:删除一条数据时,先对记录加X锁,再执行删除操作。
Insert:插入一条记录时,会先加“隐式锁”来保护这条新插入的记录在本事务提交前不被别的事务访问到。
Update:
- 如果被更新的列,修改前后没有导致存储空间变化,那么会先给记录加X锁,再直接对记录进行修改。
- 如果被更新的列,修改前后导致存储空间发生了变化,那么会先给记录加X锁,然后将记录删掉,再insert一条新记录。
隐式锁:一个事务插入一条记录后,还未提交,这条记录会保存本次事务id,而其他事务如果想对这个记录加锁会发现事务id不对应,这时候会产生X锁,相当于在插入一条记录时,隐式的给这条记录加了一把隐式X锁。