<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NoSQL on 蛋蛋忧桑</title><link>https://dandansad.com/tags/nosql/</link><description>Recent content in NoSQL on 蛋蛋忧桑</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sat, 24 May 2025 23:50:37 +0800</lastBuildDate><atom:link href="https://dandansad.com/tags/nosql/index.xml" rel="self" type="application/rss+xml"/><item><title>NoSQL数据库的四大类型</title><link>https://dandansad.com/2025/05/24/nosql%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E5%9B%9B%E5%A4%A7%E7%B1%BB%E5%9E%8B/</link><pubDate>Sat, 24 May 2025 23:50:37 +0800</pubDate><guid>https://dandansad.com/2025/05/24/nosql%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E5%9B%9B%E5%A4%A7%E7%B1%BB%E5%9E%8B/</guid><description>&lt;h2 id="什么是nosql"&gt;&lt;a href="#%e4%bb%80%e4%b9%88%e6%98%afnosql" class="header-anchor"&gt;&lt;/a&gt;什么是NoSQL？
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;NoSQL&lt;/strong&gt; 是 &lt;strong&gt;&amp;ldquo;Not Only SQL&amp;rdquo;&lt;/strong&gt; 的缩写（起初也有另一种解释为“No SQL”），表示“不仅仅是 SQL”。它泛指一类 &lt;strong&gt;非关系型数据库&lt;/strong&gt;，与传统的关系型数据库（如 MySQL、PostgreSQL）不同，它们通常不使用固定的表结构（没有严格的“表、行、列”模型），而是采用更灵活的数据模型来存储数据。&lt;/p&gt;
&lt;h2 id="nosql-的设计理念"&gt;&lt;a href="#nosql-%e7%9a%84%e8%ae%be%e8%ae%a1%e7%90%86%e5%bf%b5" class="header-anchor"&gt;&lt;/a&gt;NoSQL 的设计理念
&lt;/h2&gt;&lt;p&gt;NoSQL 的出现是为了解决传统关系型数据库在以下几个方面的不足：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;可扩展性差&lt;/strong&gt;：关系型数据库在处理海量数据、分布式存储和高并发时难以扩展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;灵活性不足&lt;/strong&gt;：数据结构固定（表结构定义死），变更麻烦。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;性能瓶颈&lt;/strong&gt;：对海量数据的读写性能不够友好，尤其是在互联网、大数据场景下。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;NoSQL 数据库的目标是更好地支持 &lt;strong&gt;高并发访问、大数据存储、灵活的数据结构&lt;/strong&gt;，常用于互联网公司、分布式系统、大数据处理等领域。&lt;/p&gt;
&lt;h2 id="nosql数据库的四大类型"&gt;&lt;a href="#nosql%e6%95%b0%e6%8d%ae%e5%ba%93%e7%9a%84%e5%9b%9b%e5%a4%a7%e7%b1%bb%e5%9e%8b" class="header-anchor"&gt;&lt;/a&gt;NoSQL数据库的四大类型
&lt;/h2&gt;&lt;h3 id="1-键值型key-value-store"&gt;&lt;a href="#1-%e9%94%ae%e5%80%bc%e5%9e%8bkey-value-store" class="header-anchor"&gt;&lt;/a&gt;1. 键值型（Key-Value Store）
&lt;/h3&gt;&lt;p&gt;这类数据库把数据存成一对对的“键”和“值”，就像一个超大号的字典或哈希表。你通过 key 查找对应的 value，速度非常快，适合做缓存、会话数据等简单存取操作，但不支持复杂查询。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;适用场景：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;缓存系统（如 Redis 缓存用户信息）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;会话状态存储&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;配置管理&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-文档型document-store"&gt;&lt;a href="#2-%e6%96%87%e6%a1%a3%e5%9e%8bdocument-store" class="header-anchor"&gt;&lt;/a&gt;2. 文档型（Document Store）
&lt;/h3&gt;&lt;p&gt;文档型数据库把每条记录存成一个结构化的文档（如 JSON），每个文档可以拥有不同的字段，非常灵活。它支持根据文档中的字段进行查询，是 NoSQL 中功能较强、用得最广的一类，常用于 Web 系统、内容管理等场景。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;适用场景：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;内容管理系统（CMS）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用户资料、日志、评论系统&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;灵活业务模型（字段常变）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-列族型column-family-store"&gt;&lt;a href="#3-%e5%88%97%e6%97%8f%e5%9e%8bcolumn-family-store" class="header-anchor"&gt;&lt;/a&gt;3. 列族型（Column-Family Store）
&lt;/h3&gt;&lt;p&gt;这类数据库按“列”而不是“行”来存储数据，适合处理大规模结构化数据。每一列族就像一个独立的表，可高效读取某一类数据。它在写入和读取性能上非常出色，常用于大数据分析、日志处理、时间序列数据等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;适用场景：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;实时分析（如用户行为记录）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;时间序列数据&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;日志和传感器数据存储&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-图数据库graph-database"&gt;&lt;a href="#4-%e5%9b%be%e6%95%b0%e6%8d%ae%e5%ba%93graph-database" class="header-anchor"&gt;&lt;/a&gt;4. 图数据库（Graph Database）
&lt;/h3&gt;&lt;p&gt;图数据库使用“节点”和“边”来表示数据及其关系，非常适合处理复杂的网络关系，比如社交网络、推荐系统等。它能快速进行“找朋友的朋友”这种关系链查询，是建模复杂关系结构的利器。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;适用场景：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;社交网络、推荐系统&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;知识图谱&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;网络拓扑分析、安全风控&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="对比表"&gt;&lt;a href="#%e5%af%b9%e6%af%94%e8%a1%a8" class="header-anchor"&gt;&lt;/a&gt;对比表
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;数据模型&lt;/th&gt;
					&lt;th&gt;优势&lt;/th&gt;
					&lt;th&gt;缺点&lt;/th&gt;
					&lt;th&gt;示例&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;键值型&lt;/td&gt;
					&lt;td&gt;Key-Value&lt;/td&gt;
					&lt;td&gt;极致性能，简单易用&lt;/td&gt;
					&lt;td&gt;只能按 key 查&lt;/td&gt;
					&lt;td&gt;Redis, DynamoDB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;文档型&lt;/td&gt;
					&lt;td&gt;JSON/BSON 文档&lt;/td&gt;
					&lt;td&gt;灵活结构，支持查询&lt;/td&gt;
					&lt;td&gt;不支持多文档事务、JOIN&lt;/td&gt;
					&lt;td&gt;MongoDB, CouchDB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;列族型&lt;/td&gt;
					&lt;td&gt;表 + 列簇&lt;/td&gt;
					&lt;td&gt;适合海量数据分析&lt;/td&gt;
					&lt;td&gt;学习曲线高，调优复杂&lt;/td&gt;
					&lt;td&gt;Cassandra, HBase&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;图数据库&lt;/td&gt;
					&lt;td&gt;节点 + 边&lt;/td&gt;
					&lt;td&gt;关系建模强、查询高效&lt;/td&gt;
					&lt;td&gt;不适合无关系数据&lt;/td&gt;
					&lt;td&gt;Neo4j, ArangoDB&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="nosql-vs-sql-对比"&gt;&lt;a href="#nosql-vs-sql-%e5%af%b9%e6%af%94" class="header-anchor"&gt;&lt;/a&gt;NoSQL vs SQL 对比
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;特性&lt;/th&gt;
					&lt;th&gt;NoSQL&lt;/th&gt;
					&lt;th&gt;SQL（关系型数据库）&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;数据结构&lt;/td&gt;
					&lt;td&gt;灵活（文档、键值、图等）&lt;/td&gt;
					&lt;td&gt;表结构，模式固定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;可扩展性&lt;/td&gt;
					&lt;td&gt;易水平扩展（分布式）&lt;/td&gt;
					&lt;td&gt;多为垂直扩展&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;事务支持&lt;/td&gt;
					&lt;td&gt;一般不强制支持 ACID&lt;/td&gt;
					&lt;td&gt;严格支持 ACID&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;查询语言&lt;/td&gt;
					&lt;td&gt;没有统一标准，通常基于 API&lt;/td&gt;
					&lt;td&gt;使用标准 SQL&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;适用场景&lt;/td&gt;
					&lt;td&gt;海量数据、高并发、动态数据结构&lt;/td&gt;
					&lt;td&gt;数据一致性强、结构清晰场景&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;常见代表&lt;/td&gt;
					&lt;td&gt;MongoDB、Redis、Cassandra等&lt;/td&gt;
					&lt;td&gt;MySQL、PostgreSQL、Oracle等&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="nosql-的应用场景"&gt;&lt;a href="#nosql-%e7%9a%84%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af" class="header-anchor"&gt;&lt;/a&gt;NoSQL 的应用场景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;社交网络系统（用户关系、动态结构）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;实时分析（大数据场景下的读写性能）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;内容管理系统（CMS）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;缓存系统（如 Redis）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;日志、传感器、监控数据存储（时序数据）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>