数据库 笔记

数据库分类
  • 关系型
    • MySQL
    • Oracle
    • SQL Server
    • Access
    • DB2, PostgreSQL
  • 非关系型
    • MongoDB (文档类型)
    • Redis (键值对类型)
    • Memcached (键值对类型)
    • HBase
NoSQL
  • 易扩展,高性能,高可用
  • 较容易映射复杂数据(key-value)
  • 无事务特性要求(ACID特性:原子性,一致性,隔离性,持久性)
    MongoDB4以后也支持ACID特性了
NoSQL设计

常见场景及设计方法(内嵌,父/子引用,反范式)

内嵌:
内嵌是指存在关联关系的文档,放在同一文档中,以数组的形式存放。
特点:

  • 减少了关联查询
  • 适合于单类需要描述的属性
  • 不经常变化的属性(扩展,嵌套关联)

父引用:
父引用是指存在一对多的情况中,放在同一文档中,以数组的形式存放。
子应用:
子引用是指存在一对非常多的情况中,由于数据库文档存放限制,这个时候进行反向引用。
父子引用设计注意点:

  • 引用数据内容是否非常多
  • 引用数据量是否非常庞大,而且在增加
  • 数据是否需要单独访问

范式:
范式是指按既定的用法,范式就是一种公认的模型或模式。
(前面的父/子引用,就是一种范式)
反范式:
不走寻常路。。
反范式设计需注意点:

  • 是否有提升性能的区间
  • 数据量的变化是否非常庞大,庞大到更新会异常低效
  • 先考虑读写比,才考虑反范式
NoSQL设计原则小结:
  • 优先考虑内嵌,如果要对内嵌数据单独访问,则不适合
  • 数组不应该无限制增长(如果数组是一个大的量,考虑父引用;如果数组是一个极大的量,无限增长,考虑子引用)
  • 先考虑读写比,考虑反范式,考虑应用场景(读大于写,用反范式可以提高系统性能)
Robo 3T

MongoDB GUI工具

MongoDB备份&恢复

把mongodb全部数据库备份到容器目录下的/temp/test
在这里插入图片描述
把容器目录下的test备份文件复制到宿主机上
在这里插入图片描述
把容器上的数据库备份文件,恢复到数据库上
在这里插入图片描述
总结:

  • 备份方式:docker cp, mongodump
  • 恢复方式:docker cp, mongorestore
Mongoose

在这里插入图片描述

Redis

特点:

  • 高性能,可持久化
  • key-value结构,支持多种数据类型
  • 支持事务,数据的原子性(要么不做/全做)

应用场景:

  • 缓存(读写性能优异)
  • 计数&消息系统(高并发,发布/订阅阻塞队列功能)
  • 分布式会话session&分布式锁(秒杀)

Redis vs Mongo

  • 存储方式不一样:key-value vs Document
  • 使用方式&可靠性不一样: MongoDB SQL & ACID支持
  • 应用场景不一样: 高性能缓存 vs 海量数据分析

安装方式:

  • 官方源码安装
  • docker安装
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神小夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值