本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制(MVCC),脏读(dirty read),幻读(phantom read),四种隔离级别(isolation level)等作详细的阐述,并且基于一个简单的例子,对MySQ ...
分类:
数据库 时间:
2018-08-09 13:50:18
阅读次数:
228
简介 定义 数据库引擎简单来说就是一个"数据库发动机"。当你访问数据库时,不管是手工访问,还是程序访问,都不是直接读写数据库文件,而是通过数据库引擎去访问数据库文件。以关系型数据库为例,你发SQL语句给数据库引擎,数据库引擎解释SQL语句,提取出你需要的数据返回给你。因此,对访问者来说,数据库引擎就 ...
分类:
其他好文 时间:
2018-08-06 20:12:39
阅读次数:
305
表单验证,是最为常见的,今天演示的是利用hibernate-validtor进行校验,有的时候,虽然前端方面通过jQuery或者require.js校验框架进行校验,可以减轻服务器的压力和改善用户体验,但是比如第三方请求接口方面也需要校验,在Controller里面套着一大堆if-elseif-el ...
分类:
编程语言 时间:
2018-08-03 23:18:53
阅读次数:
296
mysql 的mvcc 支持行级多版本,基于事务Id,区分多个数据版本,利用undo日志存储历史版本数据。 mysql 行记录的三个隐藏字段:DB_TRX_ID , ROLLBACK_PTR,DELETE_Bit ...
分类:
数据库 时间:
2018-08-02 20:45:48
阅读次数:
162
innodb为实现MVCC所使用的内部快照,RR(REPEATABLE READ)隔离级别下在第一次查询时创建read view,RC(READ COMMITTED)隔离级别下会在每次查询时创建read view以下测试在RR隔离级别下,数据库版本为5.7.201. select * from ta ...
分类:
其他好文 时间:
2018-08-01 19:43:27
阅读次数:
144
在数据库中,并发的操作进行读写数据,则会遇到脏读、不可重复读、幻读、串行化异常等问题。 数据库事务的特性: 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行; 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一 ...
分类:
数据库 时间:
2018-07-27 19:16:36
阅读次数:
185
MVCC是行级锁的一个变种,但是它在很多的情况下避免了加锁操作,因此开销更低。MySQL,包括Oracle、PostgreSQL都实现了MVCC,虽然每个关系数据库实现不一样,但大都是实现了非阻塞的读操作,写操作也只锁定必要的行。 MVCC的实现原理:InnoDB的MVCC的实现原理,是通过在每行记 ...
分类:
数据库 时间:
2018-07-26 23:27:45
阅读次数:
179
通过前面10篇文章的学习,相信我们对SpringBoot已经有了一些了解,那么如何来验证我们的学习成果呢?当然是通过做项目来证明啦!所以从这一篇开始我将会对之前自己做的.net项目用java来重写。这一篇,我们来现实登录模块。 一提到登录,我们首先想到的基本的功能点就有如下: 输入:用户名、密码、验 ...
分类:
编程语言 时间:
2018-07-13 13:23:59
阅读次数:
178
由于在springboot 2.0 WebMvcAutoConfigurationAdapter 这个类成为了自动配置类 如果你要集成这个类 自动配置的许多属性就会失效 也就是说此类已过期 你需要使用一下 接口来实现静态资源的本地映射和前端跨域 等一系列功能 ...
分类:
编程语言 时间:
2018-07-12 00:29:51
阅读次数:
1320
fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来做快速操作Json的序列化与反序列化的组件。它是目前json解析最快的开源组件没有之一! 我们进行Springboot整合FastJson 一:添加依赖 <dependency> <groupId>com.alibaba</grou ...
分类:
编程语言 时间:
2018-06-30 13:00:27
阅读次数:
246