数据库入门3

数据库入门3


事务Transaction

什么是事务

是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
简单地说:事务是将一堆SQL语句绑定在一起执行,要么都执行成功,要么都执行失败,都执行成功才算成功,否则就会恢复到执行这对SQL语言之前的状态。

事务的四个特性ACID

原子性

事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。事务中如果发生错误,会被回滚到事务开始前的状态,就像这个事务从来没执行过一样。

一致性

几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。

隔离性

数据库允许多个并发事件对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉而导致数据的不一致。

持久性

对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

隔离级别

读未提交

安全性最差,可能发生并发数据问题,性能最好

读已提交

oracle默认隔离级别

可重复读

MySQL默认的隔离级别,安全性最好,性能一般

串行化

表级锁,读写都加锁,效率低下,安全性高,不能并发

查询MySQL的隔离级别

MySQL默认对每条sql语句都开关事务,所以事务也是一个优化的点。

  • 开启事务: start transaction;
  • 结束事务:commit或 rollback;

事务处理

  • 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务
  • 事务处理可以用来维护事务的完整性,保证事务全部执行或者全部不执行
  • 事务用来管理insert,update, delete语句,因为这些操作才会破坏数据,查询select语句不会
  • MySQL默认数据库的事务是开启的,执行SQL后自动提交
  • MySQL事务可以改成手动提交

commit

多条语句时,批量执行,事务提交
有了事务,多步操作形成了原子性,高并发下也不会引起事务的错乱
BEGIN;关闭事务的自动提交
COMMIT; 手动提交事务

表关联

表代表了生活中的一个主体
表关联代表了表与表之间的关系

表的四种关系

  • 一对一
  • 一对多
  • 多对一
  • 多对多 ex:老师和学生,老师和课程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值