NoSQL 介绍
NoSQL 介绍
1. 什么是 NoSQL?
NoSQL(Not Only SQL) 是一种非关系型数据库的统称,旨在解决传统关系型数据库(如 MySQL、Oracle)在大数据、高并发和灵活数据模型场景下的局限性。
- 核心特点:
- 无固定表结构(Schema-less),支持灵活的数据格式(如 JSON、键值对、文档、图结构等)。
- 分布式架构,易于横向扩展(Scale-out)。
- 弱化事务一致性(部分支持 BASE 模型,而非严格的 ACID)。
- 适用场景:大规模数据存储、高并发读写、动态数据结构需求(如社交网络、实时分析、物联网等)。
2. 为什么用 NoSQL?
传统关系型数据库的局限性催生了 NoSQL:
- 扩展性瓶颈:关系型数据库垂直扩展(Scale-up)成本高,难以应对海量数据和高并发。
- 灵活数据模型:业务需求多变时,固定的表结构修改成本高,NoSQL 允许动态调整。
- 高性能:通过分布式架构和简化事务机制(如最终一致性),实现高吞吐和低延迟。
- 多样化数据:支持非结构化数据(如日志、JSON、图关系),适应现代应用需求。
3. NoSQL 的优缺点
优点 | 缺点 |
---|---|
✅ 高扩展性(横向扩展) | ❌ 弱事务支持(部分不支持 ACID) |
✅ 灵活的数据模型(无固定 Schema) | ❌ 查询功能较弱(无复杂 SQL) |
✅ 高性能(适合高并发读写) | ❌ 数据一致性需权衡(如 CAP 定理) |
✅ 低成本(开源生态成熟) | ❌ 学习成本高(不同数据库差异大) |
4. NoSQL 的分类
类型 | 特点 | 典型应用 | 代表数据库 |
---|---|---|---|
键值存储 | 简单键值对,高速读写 | 缓存、会话管理、计数器 | Redis、DynamoDB |
文档型 | 存储 JSON/XML 文档,嵌套结构灵活 | 内容管理、用户配置 | MongoDB、Couchbase |
列族存储 | 按列簇存储数据,适合分析型查询 | 日志分析、时序数据 | Cassandra、HBase |
图数据库 | 以节点和边表示关系,高效遍历 | 社交网络、推荐系统 | Neo4j、Amazon Neptune |
5. 哪些公司在使用 NoSQL?
- Google:Bigtable(列族存储)用于搜索引擎和 Gmail。
- Amazon:DynamoDB(键值/文档)支持电商高并发订单。
- Meta(Facebook):Cassandra(列族)处理社交数据。
- Adobe:MongoDB(文档型)管理用户配置和内容。
- 阿里巴巴:自研 OceanBase(兼容 NoSQL 和 SQL)。
- Netflix:Cassandra 存储用户观影记录。
总结
NoSQL 是应对大数据和高并发场景的利器,但需根据业务需求选择类型:
- 选型建议:优先考虑数据模型匹配度(如文档型选 MongoDB,图关系选 Neo4j)。
- 趋势:云原生 NoSQL(如 AWS DynamoDB)和混合数据库(如 NewSQL)逐渐兴起。
NoSQL 介绍
https://blog.qingyi-studio.top/2025/04/08/NoSQL介绍/