企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
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;`