1. 琐是什么;
数据库为了保证数据的一致性,是各种共享资源在被并发访问的时候变得有序所设计的。
2. 查看mysql存储引擎;
3. Mysql锁机制;
表级锁定、行级锁定和页级锁定
4.共享锁
` select ... lock in share mode`
在读取的任何行上设置共享模式锁。其他会话可以读取行,但不能在事务提交之前修改它们。如果其中一个行被另一个尚未提交的事务更改,那么您的查询将等待,直到事务结束,然后使用最新的值。
5.排他锁(悲观锁)
` SELECT ... FOR UPDATE`
6.乐观锁
首先我们要知道,乐观锁是用户自己定义的,在表中添加一个版本字段(verion),
操作的时候不加锁,而在进行更新后,再去判断是否有冲突了。
通常实现是这样的:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号加1。也就是先查询出那条记录,获取出version字段,如果要对那条记录进行操作(更新),则先判断此刻version的值是否与刚刚查询出来时的version的值相等,如果相等,则说明这段期间,没有其他程序对其进行操作,则可以执行更新,将version字段的值加1;如果更新时发现此刻的version值与刚刚获取出来的version的值不相等,则说明这段期间已经有其他程序对其进行操作了,则不进行更新操作。
`update task set value = newValue,version = versionValue +1 where version =versionValue;`