备战面试——数据库

参考文档

1.存储引擎

在这里插入图片描述

2.事务

1. 事务是一个操作序列,这些操作要么全部执行,要么都不执行。

2. 事务具有四大特性:ACID:A(原子性)、C(一致性)、I(隔离性)、D(持久性)

事务隔离级别脏读不可重复读幻读
读未提交(read-uncommitted
读已提交(read-committedX
可重复读(repeatable-readXX
串行化(serializableXX

3.Mysql 什么情况会造成脏读、不可重复读、幻读?如何解决

  1. 脏读:有两个事务A和B,A读取已经被B修改但未提交的字段,此时B回滚,那么A读取的字段就是临时且无效的。可以提高隔离级别,改成读已提交

  2. 不可重复读: 有两个事务A和B,A读取了一个字段值,然后B更新并且提交事务,A再重新读取这个字段,就和之前不相等了。可以提高隔离级别,改成可重复读

  3. 幻读: 有两个事务A和B,A读取某个范围内的记录时,B又在该范围内插入了新的记录并提交,当事务A再次读取该范围的记录时,会产生幻行。可以升级隔离级别到串行化,或者使用 MVCC + next-key锁机制实现

4.Mysql 在可重复读的隔离级别下会不会有幻读的情况,为什么?

答:不会。InnoDB存储引擎默认隔离级别为RR,通过MVCC + next-key锁机制解决了幻读的问题。

5. 什么是索引?

  • 简单来说,索引就是一种 排好序用于实现快速查找的数据结构 ,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据上实现高级查找算法,这就是索引。
  • 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在 磁盘上的文件中 的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。
  • 如果我们平时所说的索引,如果没有特殊指名,指的都是 B+ 树索引(多路搜索树,并不一定是二叉的)结构组织索引,除了 B+ 树索引以外,还是 hash 索引。补充
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值