NoSQL

NoSQL(Not Only SQL) 是泛指非关系型数据库 的统称,核心是放弃固定表结构、优先水平扩展 + 高可用 + 灵活 Schema,适合海量、高并发、非结构化 / 半结构化数据场景。


一、核心特点(vs 传统 SQL)

  • Schema 灵活:无需预定义表结构,字段可动态增减(SQL 需严格建表)。
  • 水平扩展:易通过加机器扩容(SQL 多为垂直扩容,分库分表复杂)。
  • BASE 而非 ACID
    • B asically Available(基本可用)
    • Soft state(软状态,允许短暂不一致)
    • Eventual consistency(最终一致性)(SQL 强一致、事务完整)。
  • 数据模型多样:键值、文档、列族、图等。

二、四大主流类型(含代表与场景)

1. 键值型(Key-Value)
  • 原理:哈希表,Key→Value,O (1) 读写。
  • 代表Redis(内存 + 持久化)、Memcached、DynamoDB。
  • 场景:缓存、Session、计数器、限流、排行榜。
2. 文档型(Document)
  • 原理:JSON/BSON/XML 文档,支持嵌套与二级索引。
  • 代表MongoDB、CouchDB、Couchbase。
  • 场景:内容管理、电商商品、用户画像、日志、App 后台。
3. 宽列 / 列族型(Wide-Column)
  • 原理:按列族存储,动态加列,稀疏数据友好,高写入吞吐。
  • 代表Cassandra、HBase、ScyllaDB。
  • 场景:时间序列、IoT 传感器、海量日志、推荐系统。
4. 图数据库(Graph)
  • 原理:节点(实体)+ 边(关系)+ 属性,高效关联查询。
  • 代表Neo4j、JanusGraph、ArangoDB。
  • 场景:社交网络、知识图谱、风控 / 反欺诈、路径分析。

三、核心理论

  • CAP 定理 :分布式系统中,一致性 (C)、可用性 (A)、分区容错 (P) 三者无法同时最优;NoSQL 常选AP(高可用)CP(强一致)
  • BASE 理论:NoSQL 设计基石,牺牲强一致换高可用与性能。

四、NoSQL vs SQL(选型参考)

表格

维度 SQL(MySQL/Oracle) NoSQL(Mongo/Redis)
数据结构 固定表、行 / 列、外键 灵活 Schema、嵌套、无外键
一致性 强一致(ACID) 最终一致(BASE)
扩展 垂直扩容、分库分表复杂 水平扩容、分片原生支持
事务 完整事务 有限事务或无
适合场景 金融交易、强一致、复杂关联查询 海量数据、高并发、快速迭代、非结构化数据

五、常见误区与最佳实践

  • ❌ 误区:NoSQL 完全替代 SQL → ✅ 正确:混合架构(如 MySQL 存订单 + Redis 缓存 + Mongo 存用户行为)。
  • ❌ 误区:NoSQL 无事务 → ✅ 正确:MongoDB 支持多文档 ACID,Redis 支持事务 / 脚本。
  • ✅ 选型原则:
    1. 数据模型是否简单 / 半结构化?
    2. 是否需要超高并发读写?
    3. 一致性要求是否可接受 "最终一致"?
    4. 是否需要水平扩展能力?

六、学习路径建议

  1. 掌握Redis(键值,缓存 / 高并发必学)。
  2. 学习MongoDB(文档,最接近 SQL,易上手)。
  3. 了解Cassandra/HBase(宽列,大数据 / 时序场景)。
  4. 理解CAP/BASE、分片、复制、一致性哈希等分布式原理。
相关推荐
倔强的石头_2 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
倔强的石头_4 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab5 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence5 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神6 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据6 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡6 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧6 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon6 天前
SQL学习指南——视图
数据库·sql