目录 1.锁的分类 2.共享锁和排斥锁 3.乐观锁与悲观锁 五、数据库中的锁 1.锁的分类 2.共享锁和排斥锁 共享锁(读锁) 排斥锁(写锁) 3.乐观锁与悲观锁 (1)悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它 ...
分类:
数据库 时间:
2019-02-08 13:13:43
阅读次数:
171
乐观锁 乐观锁是逻辑概念上的锁,不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。 通常实现是这样的:在表中的数据进行操作时(更新),先给数... ...
分类:
数据库 时间:
2019-02-07 00:00:39
阅读次数:
247
在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁 01.乐观锁 vs 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对 ...
分类:
编程语言 时间:
2019-01-28 23:53:00
阅读次数:
227
1. 主要开发框架及工具 mysql : 1. 关系型数据库(由多张能互相连接的二维行列表格组成的数据库) 2. mysql索引的数据结构B+树 B+树是对B树的一种变形树,它与B树的差异在于: 有k个子结点的结点必然有k个关键码; 非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中。 树的所 ...
分类:
其他好文 时间:
2019-01-27 01:11:03
阅读次数:
244
实验环境: mysql5.6 存储引擎:innoDB 我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突) 乐观锁乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理( ...
分类:
数据库 时间:
2019-01-24 23:31:12
阅读次数:
311
SQL 百万级数据提高查询速度的方法 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3.应尽量避免在 where 子句中对字段进行 null ...
分类:
数据库 时间:
2019-01-20 00:56:36
阅读次数:
226
乐观锁 乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突,在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。 实现方式1:在表中的数据进行操作时(更新),先给数据表加一个版本(version)字段,每操作一次,将那条记录的版本号 ...
分类:
其他好文 时间:
2019-01-19 00:03:55
阅读次数:
231
共享锁和排他锁 1.共享锁: 读锁、X锁,在查询时生效,多个事务在查询同一个数据时共享一把锁,但是不能作用于修改数据,在select语句后添加 lock in share mode ; 2.排他锁:在insert、update和delete时生效,获取排他锁的事务在修改一条数据时,其他锁不能存在于这 ...
分类:
数据库 时间:
2019-01-18 12:26:48
阅读次数:
210
数据库的快照隔离级别(Snapshot Isolation) 转自:https://www.cnblogs.com/ljhdo/p/5037033.html 隔离级别定义事务处理数据读取操作的隔离程度,在SQL Server中,隔离级别只会影响读操作申请的共享锁(Shared Lock),而不会影响 ...
分类:
数据库 时间:
2019-01-10 19:31:38
阅读次数:
174
InnoDB中锁的模式 Ⅰ、总览 S行级共享锁lock in share mode X行级排它锁增删改 IS意向共享锁 IX意向排他锁 AI自增锁 Ⅱ、锁之间的兼容性 兼XIXSIS X × × × × IX × √ × √ S × × √ √ IS × √ √ √ 2.1 意向锁 意向锁揭示了下一 ...
分类:
数据库 时间:
2019-01-08 00:57:11
阅读次数:
222