# 存储
[Point]Sql[Point]NoSql[Point]缓存[Point]数据一致性
# 简介
科班的同学可以了解一下数据库范式, 在 ElemeFe 面试不会问, 但是其他地方可能会问 (比如阿里).
# Mysql
SQL (Structured Query Language) 是关系式数据库管理系统的标准语言, 关于关系型数据库这里主要带大家看一下 Mysql 的几个问题
# 存储引擎
| attr | MyISAM | InnoDB |
|---|---|---|
| Locking | Table-level | Row-level |
| designed for | need of speed | high volume of data |
| foreign keys | × (DBMS) | ✓ (RDBMS) |
| transaction | × | ✓ |
| fulltext search | ✓ | × |
| scene | lots of select | lots of insert/update |
| count rows | fast | slow |
| auto_increment | fast | slow |
- 你的数据库有外键吗?
- 你需要事务支持吗?
- 你需要全文索引吗?
- 你经常使用什么样的查询模式?
- 你的数据有多大?
# 索引
索引是用空间换时间的一种优化策略. 推荐阅读: mysql索引类型 以及 主键与唯一索引的区别
# Mongodb
Monogdb 连接问题(超时/断开等)有可能是什么问题导致的?
- 网络问题
- 任务跑不完, 超过了 driver 的默认链接超时时间 (如 30s)
- Monogdb 宕机了
- 超过了连接空闲时间 (connection idle time) 被断开
- fd 不够用 (ulimit 设置)
- mongodb 最大连接数不够用 (可能是连接未复用导致)
- etc…
# Replication
备份数据库与 M/S, M/M 等部署方式的区别?
关于数据库基于各种模式的特点全部可以通过以下图片分清:
