编程导航面试题挑战记录话题讨论

面试题挑战记录

2 参与
分享

快来分享你的内容吧~

点击登录,快来和大家讨论吧~
表情
图片
话题
打卡

什么是数据库事务?讲一下事务的 ACID 特性?【02.20 - 30天面试题挑战】

# 什么是数据库事务? - 简单来说:事务通常是由一个或一组SQL组成的,组成一个事务的SQL一般都是一个业务操作,例如下单业务:「扣库存数量、增加订单详情记录、插入物流信息」,这一组SQL就可以组成一个事务。 - 事务是由 MySQL 的引擎来实现的。 - InnoDB 引擎它是支持事务的,MySQL 原生的 MyISAM 引擎就不支持事务。 # 讲一下事务的 ACID 特性? 1. **原子性(**A**tomicity)** 一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节,而且事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样 > 买一件商品,购买成功时,则给商家付了钱,商品到手;购买失败时,则商品在商家手中,消费者的钱也没花出去。 2. **一致性(**C**onsistency)** 是指事务操作前和操作后,数据满足完整性约束,数据库保持一致性状态。 > 用户 A 和用户 B 在银行分别有 800 元和 600 元,总共 1400 元,用户 A 给用户 B 转账 200 元,分为两个步骤,从 A 的账户扣除 200 元和对 B 的账户增加 200 元。一致性就是要求上述步骤操作后,最后的结果是用户 A 还有 600 元,用户 B 有 800 元,总共 1400 元,而不会出现用户 A 扣除了 200 元,但用户 B 未增加的情况(该情况,用户 A 和 B 均为 600 元,总共 1200 元)。 3. **独立性/隔离性(**I**solation)** 数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致,因为多个事务同时使用相同的数据时,不会相互干扰,每个事务都有一个完整的数据空间,对其他并发事务是隔离的。 > 消费者购买商品这个事务,是不影响其他消费者购买的。 4. **持久性(**D**urability)** 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

2月20日,面试题挑战

我讲采用先答题(只求第一反应不求正确全面),之后再补充的形式答题。 ### 题目 2月20日,面试题挑战 * 【Java】 1. JDK 和 JRE 和 JVM 分别是什么,有什么区别? 需要区分这三者,只需知道他们的全称是什么即可。JDK即java development kit,顾名思义,即java开发工具包,它包含了jre和一些java开发工具和类库,例如java,javac,javadoc等。JRE即java runtime environment,也就是java运行时环境,它包含了jvm和一些核心类库。JVM即java virtual machine,也就是java虚拟机。 2. 什么是字节码?采用字节码的最大好处是什么? 字节码就是.java源文件通过javac编译之后的.class文件,之后用于jvm执行。最大好处待补充。 4. 什么是数据库事务?讲一下事务的 ACID 特性? 数据库事务就是数据库的操作序列,即多个数据库的操作组合成的序列,要么都执行,要么都不执行。acid表示数据库管理系统中事务应具有的四个特效,原子性atomicity,连续性consistency,隔离性,持久性duration。待展开。 * 【前端】 1. 有哪些常用的 HTML 标签? p,a,div,img,button,input等。 3. CSS 选择器有哪些?优先级分别是什么? id选择器#类型选择器.元素选择器p{}属性选择器eml[attr]后代选择器。优先级待补充。 5. 有哪些常见的 CSS 布局? 盒子模型,以及display属性区分的内联元素,块级元素。其他待补充。

下载 APP