NoSQL数据库
最近看到Neo4J图形数据库也属于NoSQL,那NoSQL是什么,有几种类型?
NoSQL泛指非关系型的数据库。Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。用于超大规模数据的存储。
优势:
易扩展
大数据量高性能
多样灵活的数据类型
NoSQL数据库主要类型
(1)Key-Value 数据库
使用键值(key-value)存储的数据库,其数据按照键值对的形式进行组织、索引和存储。
数据模型:键/值对
值是一个字符串对象,可以是任意类型的数据
常见的:Redis,Memcached,Cassandra,LevelDB
优点:简单、易部署,大量写操作时性能高,查找速度快,扩展性好,灵活性好
缺点:无法存储结构化信息、条件查询效率较低
应用:
主要用于处理大量数据的高访问负载,如:
频繁读写,拥有简单数据模型的应用
内容缓存(如会话、配置文件、参数、购物车)
存储配置和用户信息的移动应用
(2)文档数据库
面向文档数据库会将数据以文档的形式储存。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型也可以是复杂的类型。
文档数据库通常以 JSON 或 XML 格式存储数据。
数据模型:键/值对
值是版本化的文档
常见的:MongoDb,CouchDB
优点:性能好,灵活性高,复杂性低,数据结构灵活
缺点:无统一的查询语言
应用:
存储、索引并管理面向文档的数据或类似半结构化数据,如:
具有大量读写操作的网站
使用json数据结构的应用
使用嵌套结构等非规范化数据的应用程序
(3)列式数据库
以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询
数据模型:列族
常见的:HBase,BigTable,Cassandra,HadoopDB
优点:
高效的储存空间利用率
查询效率高(读取多条数据的同一列效率高)
可扩展性强
容易做分布式扩展
缺点:不适合小量数据,功能较少,大都不支持强事务一致性
应用:
分布式的文件系统
拥有潜在大量数据的应用程序
拥有动态字段的应用程序
数据在地理上分布于多个数据中心的应用程序
(4)图形数据库
图数据库允许将数据以图的方式储存。实体会被作为顶点,而实体之间的关系则会被作为边。
常见的:Neo4J, InfoGrid, Infinite Graph
优点:灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱
缺点:
复杂性高、只能支持一定的数据规模
不好做分布式的集群方案
应用:
用于处理具有高度相互关联关系的数据,如:
社交网络、模式识别、依赖分析、推荐系统、路径寻找等问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2018-06-14 YAML简介