乐观锁 悲观锁
首先要明确:无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像 hibernate、tair、memcache 等都有类似的概念。所以,不应该拿乐观锁、悲观锁和其他的数据库锁等进行对比。乐观锁比较适用于读多写少的情况(多读场景),悲观锁比较适用于写多读少 的情况(多写场景)。
乐观锁:非常“乐观”的认为在“我”之后不会再有人对该数据进行操作,所以一般情况下不对该数据“上锁”。
悲观锁:非常”悲观“的认为在”我“之后 会有 人对数据进行操作,为了保持数据的安全性,用数据库自带的锁对数据(表、行)加锁。
”上锁“方式:
乐观锁:不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。
悲观锁:关系型数据库里边就有很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

浙公网安备 33010602011771号