NoSQL
NoSQLNot Only SQL是泛指非关系型数据库的统称核心是放弃固定表结构、优先水平扩展 高可用 灵活 Schema适合海量、高并发、非结构化 / 半结构化数据场景。一、核心特点vs 传统 SQLSchema 灵活无需预定义表结构字段可动态增减SQL 需严格建表。水平扩展易通过加机器扩容SQL 多为垂直扩容分库分表复杂。BASE 而非 ACIDBasicallyAvailable基本可用Soft state软状态允许短暂不一致Eventual consistency最终一致性SQL 强一致、事务完整。数据模型多样键值、文档、列族、图等。二、四大主流类型含代表与场景1. 键值型Key-Value原理哈希表Key→ValueO (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选型参考表格维度SQLMySQL/OracleNoSQLMongo/Redis数据结构固定表、行 / 列、外键灵活 Schema、嵌套、无外键一致性强一致ACID最终一致BASE扩展垂直扩容、分库分表复杂水平扩容、分片原生支持事务完整事务有限事务或无适合场景金融交易、强一致、复杂关联查询海量数据、高并发、快速迭代、非结构化数据五、常见误区与最佳实践❌ 误区NoSQL 完全替代 SQL → ✅ 正确混合架构如 MySQL 存订单 Redis 缓存 Mongo 存用户行为。❌ 误区NoSQL 无事务 → ✅ 正确MongoDB 支持多文档 ACIDRedis 支持事务 / 脚本。✅ 选型原则数据模型是否简单 / 半结构化是否需要超高并发读写一致性要求是否可接受 “最终一致”是否需要水平扩展能力六、学习路径建议掌握Redis键值缓存 / 高并发必学。学习MongoDB文档最接近 SQL易上手。了解Cassandra/HBase宽列大数据 / 时序场景。理解CAP/BASE、分片、复制、一致性哈希等分布式原理。