数据库概念
来源:互联网 发布:上海紫越网络好吗 编辑:程序博客网 时间:2024/06/08 05:49
数据库事务的acid属性:
1.原子性(atomicity):指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
2.一致性(consistency):事务必须是数据库从一个一致性状态转到另一个一致性状态,如a、b账户分别有100块,a给b汇款50块,一致性必须保证a账户剩50块,b账户有150块。
3.隔离性(isolation):一个事务的执行不能被其他事务干扰。
4持久性(durability):事务一旦提交,数据就被永久改变。
要保证事务的acid属性,必须使事务中的所有操作处于同一个connection中。
数据库的并发问题:
1.脏读:两个事务a和b,a读取了被b更新但还没提交的字段,若b回滚,则a读取的数据是无效的。
2.不可重复读:两个事务a和b,a先读取了一个字段,然后b更新了该字段,接着a再读该字段,值不同了。
3.幻读:两个事务a和b,a先读取了一个字段,然后b在该表中插入了几行记录,之后如果a再读该字段,就会多出几行。
注意:不可重复读和幻读是正常情况,需要避免的是脏读。
数据库的隔离级别:
1.读未提交:允许事务读取未被其他事务提交的变更。脏读,不可重复读,幻读都可能出现。(并发性最高,数据一致性最弱)
2.读已提交:只允许事务读取已经被其他事务提交的变更,可避免脏读,但不可重复读,幻读可能出现。(推荐使用)
3.可重复读:确保事务可以多次从同一个字段读取相同的值,在此事务期间,禁止其他事务更新该字段。可避免脏读和不可重复读,仍可能出现幻读。(并发性很弱,一致性很强)
4.串行化:确保事务可以从一个表中读取相同的行,在此事务期间,禁止其他事务对该表进行插入,更新和删除操作。可避免所有并发问题。(并发性最低,数据一致性最强)
MySQL支持四种隔离级别,默认是可重复读。
在MySQL中,实现了这四种隔离级别,分别有可能产生问题如下所示:
右连接同理。
- 数据库概念
- 数据库概念
- 数据库概念
- 数据库 概念
- 数据库概念
- 数据库概念
- 数据库概念
- 数据库概念
- 数据库概念
- 数据库概念
- 数据库概念
- 数据库概念
- 数据库引擎和数据库概念
- 数据库的一些概念
- 数据库相关概念Review
- 数据库-视图的概念
- 数据库的一些概念
- oracle数据库SCN概念
- Google 的开源技术protobuf 简介与例子
- java 条形码识别(zxing)
- JavaScript端构建RESTFul Client的简单例子
- 线性代数 -- 投影矩阵和最小二乘
- Java/Android 设计模式系列(5)--对象池模式
- 数据库概念
- 数据类型的转换
- 理解Vue 2.0 的ref属性及简单用法
- uva 12563 01背包 两个最优条件 lrj-P274
- ajax传输json数据遇到不执行success方法也不报错的问题
- word2vec
- Bootstrap学习方法及案例分享
- 计算机二进制的自我理解
- jquery动态修改背景图片