关系型数据
- ER图
- 表table和行row
- 分表数据—>聚合
- 不擅长做关联查询,特别是多层关系(比如我的朋友的朋友是哪些人?)
文件形式和数据库形式
内储存储(主存储器)和磁盘存储(后被存储器)
主从数据库
- 主数据库—写数据
- 从数据库—读数据
数据库用用的发展历史
- 单数据库
- 缓存+数据库
- 缓存+主从数据库+读写分离
- 缓存+主从数据库集群+读写分离+分库分表
- NoSQL+主从数据库集群+读写分离+分库分表
关系型数据库扩容
- 主从数据库+数据库分割
- 键值数据库 K-V
- 分流会话数据及购物车数据
- 图数据库
- 商品推荐
混合持久化
微服务
- RESTful API服务
- 以服务形式提供数据所有权管理及API,把数据库都封装成服务。
NoSQL存储适合场景
- 键值数据库
- 会话数据、配置文件、参数
- Redis、Riak、SimpleDB
- 扩展性好、灵活性好、大量写操作性能高
- 无法存储结构化信息、条件查询效率较低
- Redis应用场景:单点登录、抢购、秒杀、商品排行、点赞、数据过期
- 文档数据库
- 性能好(高并发)、灵活性好、复杂性低
- 内容管理系统及存储日志、订单信息
- 电商购物车
- 单个购物车数据量不会太大,一般100个项目
- 数据自动过期(15-30分钟无交互)
- 物联网
- IOT数据量大、写入频繁
- 以插入为主,更新少
- 统计分析场景多
- MongoDB
- 先考虑内嵌
- 内嵌模式
- 引用模式
- 分桶机制
- 列族数据库
- 应用程序状态、运行中遇到错误等事件信息
- 实时数据库
- 分布式数据存储管理
- 查询速度快、可扩展性强、复杂性低
- HBase、Cassandra
- HBase术语
- 表
- 行
- 列族
- 列限定符
- 单元格
- 时间戳
- 图数据库
- 社交网络、模式识别、依赖分析
- 推荐系统、路径寻找
- 只能支持一定数据规模
- Neo4j
- 节点、关系、属性