五、MySQL从入门到精通---事务与索引(重点内容)

一、事务(笔试面试常考)

1.1 事务概述

  • 在MySQL数据库中只有InnoDB和BDB存储引擎支持事务,MyISAM存储引擎不支持事务。默认的存储引擎是InnoDB
  • 事务就是将一组SQL语句放在同一批次内去执行;
  • 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行
  • 事务用来保证数据的完整性、正确性,操作的原子性以及并发访问时数据的隔离性;
  • 事务用来管理INSERT、UPDATE、DELETE等DML语句;
  • 事务必须手动开启、提交、回滚,也可以进行自动提交事务;
  • 事务的作用范围是一个SESSION(会话控制)中,一个SESSION中可以有多个事务。常见的SESSION:JDBC中的一个Connection对象,也就是一个线程;命令行窗口也是一个SESSION;
  • 事务有中有安全点,可以理解为将大事务拆分成小事务,回滚时只回滚到对应的安全点,并不是回滚全部回滚数据。

1.2 事物的四大特性(ACID)(重点)

原子性(Atomicity):

  1. 事务是一个操作最基本单元,其对数据的新增、修改、删除,要么全都执行,要么全都不执行,不会结束在中间某个环节;
  2. 事务一旦被提交,在事务期间对数据的新增、修改、删除,必须全部执行;
  3. 事务一旦被回滚,在事务期间对数据的新增、修改、删除,必须全部回退。新增数据,必须删除;修改数据必须恢复;删除数据必须重新回归,就好像这个事务从来没有被执行过一样;
  4. 在一个SESSION中,也就是一个会话期间,事务既没有提交也没有回滚,当会话结束时,数据并不会发生修改.

隔离性(Isolation):

  • 数据库允许多个事务同时对相同的数据进行读取和修改,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致.如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据

持久性(Durable):

  • 事务完成之后,它对于数据的修改是永久性的,即使系统出现故障也不会丢失.在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚

一致性(Consistent):

  1. 在事务开始之前和事务结束以后,数据库数据的完整性没有被破坏;
  2. 这表示写入的数据必须完全符合所有的预设规则,这包含数据的精确度、串联性以及后续数据库可以自发性地完成预定的工作。(比如:A向B转账,不可能A扣了钱
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原来如此呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值