数据库基础知识面试题整理


1. 事务的ACID特性,如何实现,几个特性之间的关系

 

什么是事务?

事务的四个特性,ACID, 原子性,一致性,隔离性,持久就

 

2. 几种并发不一致

产生并发不一致性问题主要原因是破坏了事务的隔离性,解决方法是通过并发控制来保证隔离性

丢失修改
T1 和 T2 两个事务都对一个数据进行修改,T1 先修改,T2 随后修改,T2 的修改覆盖了 T1 的修改。
一级封锁协议
事务 T 要修改数据 A 时必须加 X 锁,直到 T 结束才释放锁。

 

读脏数据
T1 修改一个数据,T2 随后读取这个数据。如果 T1 撤销了这次修改,那么 T2 读取的数据是脏数据。
二级封锁协议
在一级的基础上,要求读取数据 A 时必须加 S 锁,读取完马上释放 S 锁。
可以解决读脏数据问题,因为如果一个事务在对数据 A 进行修改,根据 1 级封锁协议,会加 X 锁,那么就不能再加 S 锁了,也就是不会读入数据

 

不可重复读
T2 读取一个数据,T1 对该数据做了修改。如果 T2 再次读取这个数据,此时读取的结果和第一次读取的结果不同。
三级封锁协议
在二级的基础上,要求读取数据 A 时必须加 S 锁,直到事务结束了才能释放 S 锁。 可以解决不可重复读的问题,因为读 A 时,其它事务不能对 A 加 X 锁,从而避免了在读的期间数据发生改变。

 

幻影读
T1 读取某个范围的数据,T2 在这个范围内插入新的数据,T1 再次读取这个范围的数据,此时读取的结果和和第一次 读取的结果不同。

 

3. 隔离级别 不同隔离级别的并发不一致 (针对隔离性提出来的)

读未提交

读提交

可重复读

串行化

 

MySQL默认是可重复读。

 

 

4. mysql的逻辑架构 一条语句的执行路径

在这里插入图片描述

5. explain的字段

在这里插入图片描述

6. mysql调优  索引的创建使用

联合索引

7. InnoDB的行锁

 

8. 意向锁

9. MVCC 原理 解决了什么问题

10. SQL 与 NoSQL 的比较

11. mysql 连接

 

 

12. 索引和B+树  原理优势

13. 红黑树 概念

 

14. 存储引擎的比较

InnoDB和MyISAM,前者是最新的,后者是旧的,所以下面的答案前面支持,后面不支持

是否支持行锁

是否支持外键

是否支持MVCC



InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构),必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。

 

 MyISAM是非聚集索引,也是使用B+Tree作为索引结构,索引和数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

 

15. 主从复制,读写分离 过程

分布式部署。

 

 

16. 分表 水平切分垂直切分

17. mysql用的什么协议 有状态还是无状态

18. innoDB的架构

19. join 的底层原理

20. innoDB索引计算

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值