面试复习
JAVA相关
数据库相关
MYSQL
- MySQL存储引擎架构
- 数据库索引
- MySQL-并发控制
- 常见并发控制保证数据一致性的方法有锁,数据多版本;
- 普通锁串行,读写锁读读并行,数据多版本读写并行;
- redo日志保证已提交事务的ACID特性,设计思路是,通过顺序写替代随机写,提高并发;
- undo日志用来回滚未提交的事务,它存储在回滚段里;用于保障,未提交事务不会对数据库的ACID特性产生影响。
- InnoDB是基于MVCC的存储引擎,它利用了存储在回滚段里的undo日志,即数据的旧版本,提高并发;
- InnoDB之所以并发高,快照读不加锁;
- InnoDB所有普通select都是快照读;
- 一文搞懂MySQL体系架构!!
- mysql事务
- 数据库事务
NoSQL 是键-值数据库、文档型数据库、列型数据库或图数据库的统称。数据库是非规范化的,表联结大多在应用程序代码中完成。大多数 NoSQL 无法实现真正符合 ACID 的事务,支持最终一致。
BASE 通常被用于描述 NoSQL 数据库的特性。相比 CAP 理论,BASE 强调可用性超过一致性。
- 基本可用 - 系统保证可用性。
- 软状态 - 即使没有输入,系统状态也可能随着时间变化。
- 最终一致性 - 经过一段时间之后,系统最终会变一致,因为系统在此期间没有收到任何输入。
除了在 SQL 还是 NoSQL 之间做选择,了解哪种类型的 NoSQL 数据库最适合你的用例也是非常有帮助的。我们将在下一节中快速了解下 键-值存储、文档型存储、列型存储和图存储数据库。
- 键值数据库
- 文档数据库
- 列型存储
- BigTable ==google
- HBase
- Cassandra == facebook
- 图数据库
其他
分布式相关
系统设计
中间件