[toc]
- 缓存: redis
- OLTP: mysql
- OLAP: Hadoop
- 批处理/数据仓库: flink
- 流处理/消息队列: Kafka
- 搜索索引: es
- 文档数据库: mongo, Couchbase
- 地理数据库: PostGIS
- 空间数据库
- 时序数据库: influxdb
- 图数据库: Neo4j
- 架构:
- 生态
- HA
- 部署|备份
- crash safe
- 性能
- 磁盘
- cpu
- 数据量
- 数据类型: json/text 等大字段支持
- 表|视图: 存储方式
- 索引: 存储方式
- 事务
- 锁
- SP
- 统计分析
-
NoSQL 是一个综合的数据库类别, 旨在克服 SQL 数据库产生的问题
- mysql 的 json(非结构化的数据) 处理能力很弱: nosql 对其在底层就做了更多优化
- 数据量问题
- 并发问题
- 超大字段
- 使用场景的精细化优化: 如 redis, es
-
NewSQL 是想结合两者的优势(事务, 规模, 扩展,,数据类型等)
dimension sql nosql newsql(HTAP) Type rdbms distibute or no-relation combined struct 结构化 & 预定义 & 改代价 动态结构 & 无预定义 & 改代价小 结构化 scalability 垂直扩展 垂直 & 水平扩展 垂直 & 水平扩展 store(amount) 不适合分层存储 适合分层存储(大数据量) 适合分层存储(大数据量) base 基于表(多行事务 acid) 键值对 & 面向文档,列,图形 基于表(多行事务 acid) HA 一般 高 高 场景 事务, 金钱等 大数据, 社交,物联网 theory acid cap(base) acid 生态 好 好 一般 example mysql, pgsql, oracle mongodb, redis, neo4j, hive tidb,VoltDB 复杂查询(聚合) 一般 差 好 事务 友好 差 支持联机事务 索引 友好 友好 友好
RDBMS | DBMS |
---|---|
表格式存储 | 文件格式存储 |
多个数据元素可以一起访问 | 数据元素的单独访问 |
表格形式的数据链接在一起 | 数据之间没有联系 |
支持 ACID | 不支持 ACID |
规范化存在 | 规范化不存在 |
支持分布式数据库 | 不支持分布式数据库 |
数据存储量大 | 存储的数据量很小 |
键和索引不允许数据冗余 | 数据冗余很常见 |
支持多用户 | 支持单用户 |
具有多层安全性 | 处理数据时安全性较低 |
对软硬件要求较高 | 软硬件要求低 |
Oracle, mysql | XML, Microsoft Access |
-
join(hash join):
-
oltp
-
数据类型: GIS
-
json
-
string/text
-
sp
-
rr
-
cluster: ha(crash-safe)
-
聚合函数(复杂查询): olap || ETL
-
性能: 好上一个数量及
-
单标数据量: pgsql(kw) | mysql(bw)
-
分区
-
初衷: postgres 更加偏学术研究,各种各样的功能全,则 mysql 偏应用,功能不追求完善,追求实用、性能
-
架构: 多线程 | 多进程
-
生态: pgadmin | tidb
-
slogan: 最流行 | 最优秀
-
PG 的优化执行引擎要比 MySQL 更好
-
PG 的开源协议比 MySQL 更好: BSD || GPL
-
特色: mysql(engine layer)
-
sql 标准实现: PG 好(学院派), 超严格
-
PG 主表采用堆表存放, MySQL 采用索引组织表
- pgsql 不是完全遵循最左前缀法则
-
异构技术: pg 可以将多种源作为数据源
-
提交方式: 异步
-
使用场景: 如果你的场景并发量比较大,直接 MySQL 在生态(TiDB)及人员招聘上,你会省掉很多事情 || 小 olap(一专多能)
-
数据库类型: rdbms || ordbms
-
XML 支持: 只 pg 可以
-
物化视图: 只 pg 可以
-
批处理
-
sql and nosql
- acid
- tranasction
- 使用场景
-
arthecture and cluster
-
mysql vs mongodb vs redis
-
关系型数据库的优点
- 容易理解, 因为它采用了关系模型来组织数据
- 维护数据表之间的关系: 可以关联查询
- 支持复杂查询(带 where 子句的查询)
- 可以保持数据的一致性
- 数据更新的开销比较小
-
非关系型数据库的优点: 内存性数据库以及文档型数据库
- 无需经过 SQL 层的解析, 读写效率高
- 基于键值对, 读写性能很高, 易于扩展
- 可以应对高并发场景
- 可以支持多种类型数据的存储, 如图片, 文档等等
- 适合场景: 数据量大高可用的日志系统/地理位置存储系统
-
- nosql vs newsql
- nosql vs sql
- dbms & rdbms
- pgsql vs mysql
- pgsql vs mysql
- pgsql vs mysql
- pgsql vs mysql
- ER 图