关系型数据库
1. 常见开源、免费关系型数据库
当我们提及「数据库」时,通常指的是关系型数据库(Relational Database)。
这里列举一些常见的开源、免费、关系型数据库:
- MySQL
- MariaDB
- PostgreSQL
- SQLite
除了关系性数据库外,还有非关系型数据库(NoSQL),我们将在 NoSQL 数据库 中介绍。
2. 高频考点
数据存储作为软件开发的重要一环,关于数据库的内容,在面试中也一直是**高频考点**。
另外虽然主流的开源数据库有很多,并且各自的使用场景也十分广泛。但是在实际面试中,MySQL 一直是被提问最多的数据库,需要重点复习。
- 事务
- 事务的四大特性 - ACID
- 事务的隔离级别
- 什么是脏读、幻读、不可重复读
- 索引
- 索引的实现原理 - B+ 树
- 聚簇索引和非聚簇索引
- 索引的类型
- 索引的优化
- 锁
- 锁的类型
- 锁的优化
- 死锁的产生原因与解决方法
- 查询优化
- 查询优化的原理
- Join 的使用与基本原理
- 扩展
- 数据库集群的原理 - 主从复制、读写分离
- 数据库分库分表的原理
- MySQL 的存储引擎
- InnoDB 与 MyISAM 的区别
- InnoDB 的索引实现
- MyISAM 的索引实现
- 维护
- 数据库的备份与恢复
- Binlog 的原理与使用
3. 高频面试题
3.1. 事务
- 为什么需要事务,解决了什么问题,如何解决的?
- 事务的四大特性是什么?
- 事务的隔离级别有哪些?
- 什么是脏读、幻读、不可重复读,如何解决?
3.2. 索引
- 介绍一下 B+ 树 的实现原理,与 B 树 有什么区别?
- 聚簇索引和非聚簇索引有什么区别?
3.3. 锁
- MySQL 中行锁、表锁、间隙锁、意向锁的含义与使用场景?
- 死锁的产生原因与解决方法?
3.4. 扩展
- MySQL 如何进行集群化部署,原理是什么?
- 什么时候需要对数据库进行分库、分表?