非关系型数据库有哪些:分类型选型参考

非关系型数据库有哪些,主流分为键值型、文档型、列存储型、图数据库四类,键值型适合高频简单读写,文档型适配半结构化JSON数据,列存储型偏向海量数据分析,图数据库处理节点关联查询;你做缓存、商品快照、日志存储、社交关系链时可以优先对应挑选,该体系不适合强事务、多表复杂关联查询的财务核心记账场景,这类场景更偏向关系型数据库。

非关系型数据库主流品类

键值数据库以简单键值对存储数据,查询速度较快,数据结构简单,没有复杂的表关联设计。Redis是这类里使用范围较广的产品,支持字符串、哈希、集合等多种数据结构,除基础存储外还能承担缓存、分布式锁、延时队列等工作,单机可以支撑较高的并发请求。Riak和Memcached也属于键值数据库,Memcached功能精简,只支持基础字符串,持久化能力偏弱,多用于纯缓存场景。

文档数据库把数据以文档单元存放,文档常用JSON、BSON格式,单条文档内部字段可以灵活增减,不需要提前定义固定表结构。MongoDB是文档数据库的代表,大量用于小程序后端、用户行为记录、内容管理系统,查询语法贴近对象操作,开发迭代速度更快。CouchDB同样属于文档数据库,内置版本控制能力,适合多终端离线同步数据的业务。

列存储数据库按列组织数据,同一列的数据连续存放,聚合统计、批量扫描的效率优于行式存储。Cassandra支持多节点横向扩展,容错能力较强,适合跨地域部署的海量时序数据写入。HBase依托Hadoop生态搭建,适合超大规模稀疏数据表存储,常配合大数据离线分析任务使用,写入吞吐表现稳定,随机查询的延迟会高于Redis。

图数据库专门存储实体与实体之间的关联关系,数据模型由节点、边、属性组成,擅长深度关联遍历。Neo4j是商用和开源领域普及率较高的图数据库,多用于知识图谱、风控链路、好友推荐计算。JanusGraph支持分布式集群,能承载更大规模的图数据,适合企业级复杂关系挖掘场景。

类型代表产品适合场景短板
键值型Redis、Memcached缓存、计数、会话存储复杂条件查询能力弱
文档型MongoDB、CouchDB内容存储、动态表单跨文档事务支持有限
列存储型Cassandra、HBase时序日志、海量统计单条查询延迟偏高
图数据库Neo4j、JanusGraph关系链路、知识图谱数据扩容成本偏高

时序数据库属于非关系型数据库的细分分支,专门针对带时间戳的指标数据优化,InfluxDB、TDengine都归为此类,采集服务器指标、物联网传感数据时选择这类产品,压缩率和查询效率会优于通用数据库。

选型看访问模式。

读多写少、查询逻辑简单,优先Redis;业务字段经常变动、不需要统一表结构,优先MongoDB;持续不断写入海量时序指标,优先时序数据库;需要反复追溯多层关联关系,优先Neo4j。你不要单纯为了追求新技术就选用非关系型数据库,订单转账这类要求ACID强事务保障的业务,MySQL这类关系型数据库的稳定性会更稳妥。

CAP理论是分布式数据库选型的基础参考依据,分布式系统无法同时满足一致性、可用性、分区容错性三个特性,不同非关系型数据库在设计时会做出取舍,Cassandra偏向可用性与分区容错,Neo4j单机版本更侧重一致性,集群部署方案会改变它的特性倾向,你搭建集群前要确认业务能够接受的不一致窗口时长。

部署成本也要纳入判断。Redis单机部署上手门槛很低,小型项目直接可用;HBase、JanusGraph依赖配套组件,运维复杂度更高,需要配备熟悉大数据组件的人员维护,小型团队没有专职运维人员时,尽量避开重集群方案。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于非关系型数据库有哪些的文章欢迎访问:百科