MySQL锁的学习
偷一张图
共享锁:目前我个人的理解是
共享锁是只读锁,如果一条数据被一个事务加了共享锁的话,那么别的事务就无法对他进行更改的操作。
共享锁是共享的,如果一条数据被加上了共享锁的话,其他的事物也可以再给他上一把共享锁(两把锁锁住同一辆小黄车)只有这两个事务都给他解锁后他才能恢复自由身。
排他锁 与共享锁对立,用来写,无法共享(想想也是,如果一个数据已经被排他锁锁住了,还能被另一个排他锁锁住的话,那么这两个事务就都可以对他进行更改操作了,这显然是不行的)
后续等下更新
lock tables student read;
这张学生表变成只读,而且可以多个事务同时来读,但不能写入,否则会提示:
lock tables student write;
试了一下,可读可写,开另一个终端执行写的操作的时候会阻塞,直到刚刚那个终端解锁后才执行
unlock tables;