看了该文章之后,很受启发,mysql在update时,一般也是先select。但注意,在Read Committed隔离级别下,如果没有使用索引,并不会锁住整个表, 还是只锁住满足查询条件的记录而已。使用索引的最佳方式是使用主键,如果我们知道主键的范围(只要是精确范围的超集就可以了),那可以在查询 ...
分类:
数据库 时间:
2019-01-04 12:38:30
阅读次数:
177
一:CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c` (`c`)) ENGINE=InnoDB;inser ...
分类:
其他好文 时间:
2018-12-29 13:51:34
阅读次数:
230
事务就是一组一起成功或一起失败的sql语句。事务还应该具备,原子性,一致性,隔离性和持久性。 一、事务的基本要素 (ACID) 1、原子性:事务开始后,所有的操作,要么全部成功,要么全部失败,不可能处于中间状态,事务是一个不可分割的整体,就像原子一样。 2、一致性:事务开始前和结束后,数据库的完整性 ...
分类:
数据库 时间:
2018-12-26 22:21:50
阅读次数:
216
innodb的事务隔离级别是可重复读级别且innodb_locks_unsafe_for_binlog禁用,也就是说允许next-key lock 实验来自网上. ( 如果你没有演示出来,请check order_id 是否是非unique key.) 如果你看不懂,请看后续文章. next-key ...
分类:
数据库 时间:
2018-12-26 11:34:41
阅读次数:
245
mysql数据库中默认的隔离级别为repeat-read. innodb默认使用了next-gap算法,这种算法结合了index-row锁和gap锁。正因为这样的锁算法,innodb在可重复读这样的默认隔离级别上,可以避免幻象的产生。 innodb_locks_unsafe_for_binlog最主 ...
分类:
数据库 时间:
2018-12-26 00:34:32
阅读次数:
354
1.mysql事务有4个隔离级别,以及会出现的问题如下图: 2. 脏读: 开启事务A,B。事务A在还没有提交的情况下,假如第一次查询id=1的用户的age=24。事务B执行了update 表 set age = 100 where id = 1; B事务并没有提交,紧接着再次查询id=1的用户的ag ...
分类:
数据库 时间:
2018-12-25 15:20:37
阅读次数:
169
Mysql数据库的隔离级别有四种 1.read umcommitted 读未提交(当前事务可以读取其他事务没提交的数据,会读取到脏数据) 2.read committed 读已提交(当前事务不能读取其他事务没提交的数据,只能读取其他事务已经提交的数据,但会出现每次读取的数据都会不同) 3.repea ...
分类:
数据库 时间:
2018-12-22 16:29:41
阅读次数:
192
What's it? 事务, 基本上要求 多个sql操作 就向一个sql操作一样。(是一个系统,是一个整体,但对外表现就是像一个不可切割的个体。) 特别需要注意的是,一般我们说事务的时候,一般就是指那种Read committed或 Repeatable read 隔离级别的事务,是需要保证 一定的 ...
分类:
其他好文 时间:
2018-12-15 21:10:04
阅读次数:
149
AspectJ AOP事务属性的配置(隔离级别、传播行为等): 其中 表示接收到这些异常应该进行回滚,使用简单类名也可以。 AOP不起作用的原因: 1、切入点表达式错误 2、AspectJ自动代理时,配置文件或配置类中忘记添加 ...
分类:
编程语言 时间:
2018-12-15 10:31:18
阅读次数:
205
InnoDB: InnoDB是 MySQL 默认的事务型存储引擎,也是最重要、使用最广泛的存储引擎。只有在需要它不支持的特性时,才考虑使用其它存储引擎。被设计用来处理大量的短期事务,短期事务大部分情况是正常提交的,很少会被回滚。 InnoDB采用多版本并发控制(MVCC)来支持高并发,并且实现了四个 ...
分类:
数据库 时间:
2018-12-13 01:24:55
阅读次数:
243