MYSQL的行锁是如何工作的
上文是针对于MySQL的锁分类
其实主要的是针对于单条数据的记录的行锁 或者表锁;
表级锁模式:
表共享锁
独占写锁
线程获取表的读锁之后,其他线程仍然对表可以读操作,但是不能对表进行操作,

MySQL命令添加表锁
lock table 表名称 read(write);
lock table data read ;添加读锁表级别的
lock table data write ;添加写锁表级别的
删除 表锁命令
unlock tables;
MySQL的行锁
行锁是针对于特点的数据记录,
对于当前MySQL的主流存储引擎,innoDB中,有两种类型的行锁,
共享锁
排他锁
其中 共享锁--->一个事务只能读取一行数据, 并且添加了共享锁之后的数据,就不能给增加排他锁;
排他锁--->对于当前事务,中的数据进行数据的CRUD的操作,并且当前的数据行,不能增加排他锁和共享锁
其中比较重要的是,对于主要的数据表中的索引字段,如果对非索引字段进行设置行锁,可能会将行锁编成表锁。
可以使用
--->共享锁
区分行锁和表锁的关键,是看当前的锁,是针对对全部的数据表的,还是只是当前更新数据的记录的,
比如 当前我要下单一个商品,只是在当前记录表的数据增加或者修改,
这个就是行级数据,进行操作
如果是我对这个表操作, 比如高并发的环境下,对其当前表增加一个数据,但是 支持的并发比较低,相应的数据安全的性能也比较低,
牺牲性能来保证数据安全