这是我参与「第五届青训营 」伴学笔记创作活动的第9天
知识点
1.数据库简介,主流产品介绍
2.新技术
细则
1.存储系统特点
- 性能敏感
- 容易受硬件影响
- 缓存很重要,贯穿整个存储体系
- 拷贝很昂贵,应该尽量减少
- 硬件设备五花八门,需要有抽象统一的接入层
2.关系型数据库
关系=集合-任意元素组成的若干有序偶对反应了事物间的关系。
关系代数-对关系做运算的抽象查询语言
SQL-方便人类阅读的关系代数表达形式用函数来表达查询方式
特点:
- 结构化数据友好
- 支持事务(ACID)
- 支持复杂查询语言
感觉目前主流的数据库都是关系型的,对象型的数据库还属于未来可期
非关系型的有mongodb和redis等,但感觉他们都属于有特定的就业方向的
3.新技术
spdk,ai,硬件加速等
4.一些奇奇怪怪
MongoDB
- 面向文档存储
- 文档可序列化成JSON/BSON,支持嵌套
- 存在collection,collection=文档的集合
- 存储和构建索引能力依赖wired Tiger引擎
- 4.0后开始支持事务(多文档、跨分片多文档等)
- 常用client/SDK交互,可通过插件转移支持弱SQL
Redis(在web应用广泛应用)
- 数据结构丰富(hash表,set,zset,list)
- C语言实现,超高性能
- 主要基于内存,但支持AOF/RDB持久化
- 常用redis-cli多语言SDK交互
Elasticsearch(电商平台使用较多,配合后台的大型数据库(mysql,sqlserver)等一同使用)
- 面向文档存储
- 文档可序列化成JSON,支持嵌套
- 存在index,index=文档的集合
- 存储和构建索引能力依赖Lucene引擎
- 实现了大量搜索数据结构&算法
- 支持RESTFUL API,也支持弱SQL交互