浅谈数据库事务之隔离级别 Database Transaction isolation
前言
大家好,我是老马。
每一个做后端的开发小伙伴,基本都接触过数据库,对事务也都有所耳闻。
但是真的问起来,可能都会记不太清处理。
每天都在用,但是总是忘记,事务堪称最熟悉的陌生人。
本文就和大家一起重点回顾下事务的隔离级别。
基本概念
为保证文档的完整性,下面是一些官方的概念。不感兴趣的小伙伴可以跳过。
遇到不清楚的名词,回头查阅即可。
数据库事务
数据库事务(简称:...
2018-07-26 03:17:13 |
Database
Springboot Transaction @EnableTransactionManagement, spring 事务不生效; MySQL AutoCommit
@EnableTransactionManagement 不生效
要使 @EnableTransactionManagement 生效,需要确保以下几个方面都已经配置正确:
1) 确保在Spring配置文件中声明了 <tx:annotation-driven> 标签。
这个标签会启用Spring的事务管理功能,并且会使得@Transactional注解生效。
示例代码如下...
2018-07-26 03:07:50 |
Spring
Spring Transaction
Spring 事务介绍
优势
全面的事务支持是使用Spring框架的最引人注目的原因之一。
Spring 框架为事务管理提供了一致的抽象,提供了以下好处:
跨不同事务API(如Java事务API (JTA)、JDBC、Hibernate和Java持久性API (JPA)的一致编程模型。
支持声明式事务管理。
编程事务管理的API比复杂的事...
2018-07-26 03:07:50 |
Spring
Search 二分查找法
顺序查找
顺序查找适合于存储结构为顺序存储或链接存储的线性表。
基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k的结点,表示查找失败。
复杂度分析:
查找成功时的平均查找长度为:(假设每个数据元素的概率相等) ASL = 1/n(1+2+3+…+...
2018-07-26 01:54:12 |
Algorithm
Time Sort
Time Sort
Timsort: A very fast , O(n log n), stable sorting algorithm built for the real world — not constructed in academia.
算法简介
Timsort 是一种对真实数据有效的排序算法,而不是在学术实验室中创建的。
Tim Peters在2001年为Python...
2018-07-26 01:11:23 |
Algorithm
Java Concurrency-09-synchronized
synchronized
问题
synchronized锁住的是代码还是对象。
答案是:
synchronized 锁住的是括号里的对象,而不是代码。
对于非 static 的 synchronized 方法,锁的就是对象本身也就是 this。
验证
案例 1
SyncDemo.java
public class SyncDemo {
public syn...
2018-07-25 07:34:17 |
Java
Java Concurrency-09-synchronized 源码解析
通过openjdk源码分析ObjectMonitor底层实现
Hotspot JDK只是部分开源,将底层的调用C++的native方法的具体实现屏蔽了,而openjdk则将这部分也开源了,接下来我们通过openjdk源码分析ObjectMonitor底层实现。
openjdk 的官方地址为: https://openjdk.java.net/
源码地址: https://hg.open...
2018-07-25 07:34:17 |
Java
Java Concurrency-09-synchronized 背后的锁 objectMonitor 介绍s
一、前言
synchronized保证线程同步的作用相信大家都已经非常熟悉了,可以把任意一个对象当作锁。
synchronized 关键字无论是修饰代码块,还是修饰实例方法和静态方法,本质上都是作用于对象上。
当用 synchronized 修饰代码块时,编译后的字节码会有 monitorenter 和 monitorexit 指令,分别对应的是获得锁和解锁。
当用 synchron...
2018-07-25 07:34:17 |
Java