数据科学每日总结--Day16--数据库
数据库
MongoDB
-
概念:是一种NOSQL数据库,以JSON类似的文档来存储数据,而不是表和行
-
NOSQL的几类数据库:
-
键值型 → 简单的 Key-Value 存储(快,但功能有限)
-
文档型 → 结构化+半结构化数据都能存,还能做复杂查询
-
列族型 → 存超大规模分布式数据(适合时间序列、大表)
-
图数据库 → 关系计算很强(朋友圈、路径分析)
-
-
特点:
-
文档存储 数据以 BSON(二进制 JSON)格式保存,可以支持更复杂的数据结构,例如嵌套对象 和数组。
-
灵活的模式 不需要提前定义数据表结构,字段可以根据需求随时添加或删除。
-
高性能与可扩展性 通过分片和复制集,可以支持大规模数据和高并发访问。
-
灵活查询 支持丰富的查询、聚合功能,以及地理位置查询等。
-
面向集合 将文档归类到集合中,相当于关系型数据库里的“表”,但没有固定结构。
-
-
适用场景:
-
大数据存储(日志、传感器数据、应用数据)
-
灵活结构的应用(例如电商的商品信息,每个商品字段可能不同)
-
实时分析与聚合
-
内容管理系统
-
地理信息服务
-
-
通用情况下都选择MongoDB的原因:
-
易用性高 数据结构灵活,插入一条数据几乎不需要建表或定义结构。
-
查询能力强 虽然是 NoSQL,但它的查询表达式功能很强大,甚至有聚合管道实现复杂的数据处 理。
-
扩展性好 内置分片(Sharding)机制,可以天然水平扩展到多台机器。
-
生态成熟 社区活跃,驱动支持多种编程语言(Java、Python、Node.js 等)。
-
性能与实时性 高并发写入和查询能力强,适合日志、实时数据分析、IoT 场景。
-
通用性 Key-Value 存取性能不错(因为可以直接用 _id 做主键索引,查找相当快),在一 定程度上能替代键值数据库做缓存或快速检索;聚合能力和索引强,可以做一定程度的 大数据分析(虽然大规模 OLAP 不如列族型优秀);支持图查询插件,也能做简单的 图遍历(但肯定不如真正的图数据库 Neo4j 专业)
-
