常见的非关系型数据库有哪些
常见的⾮关系型数据库有哪些
1. 什么是⾮关系型数据库
什么是关系型数据库
关系型数据库就是需要依赖现实⽣活的具体模型来创建的数据库, ⽐如具体的⼈, 事物, 能表⽰多个表之间⼀对⼀, ⼀对多, 多对多的关系.
⽽且⽀持事务.
常见的Mysql, Oracle都是关⼼型数据库.
什么是⾮关系型数据库
⾮关系型数据库就是不需要依赖现实⽣活中的具体模型就可以出数据库及表. ⽐较灵活便利.
2. 为什么要⽤⾮关系型数据库
关系型数据库具有数据安全且容易理解的优点, 但是随着互联⽹的发展,数据存储越来越多, 对于并发的要求也越来越⾼,项⽬中单纯使⽤关系型数据库已经⽆法满⾜这些要求, 于是应运⽽⽣了⾮关系型数据库.
⾮关系型数据库具有格式灵活, 成本低, 查询快, ⾼性能, ⾼扩展的优点.
实际开发中通常将关系型数据库和⾮关系型数据库结合使⽤, 不同⾮关系型数据库具体应⽤场景不同.
3. 常⽤的⾮关系型数据库有哪些
3.1 键值对key-value型
key-value数据库的主要特点是具有极⾼的并发读写性能
Key-value数据库是⼀种以键值对存储数据的⼀种数据库, 类似Java中的map. 可以将整个数据库理解为⼀个⼤的map, 每个键都会对应⼀个唯⼀的值.
主流最常⽤的代表就是Redis等
3.2 ⽂档型
⽂档型按照功能划分⼜分为基于海量数据存储的和基于搜索内容存储的搜索引擎,数据结构可以理解为Json格式的⽂档类型.
3.2.1 基于海量数据存储
这类数据库的主要特点是在海量的数据中可以快速的查询数据
⽂档存储通常使⽤内部表⽰法, 可以直接在应⽤程序中处理, 主要是JSON. JSON⽂档也可以作为纯⽂本存储在键值存储或关系数据库系统中.
主流代表为MongoDB等
3.2.2 搜索引擎
搜索引擎是专门⽤于搜索数据内容的NoSQL数据库管理系统。
主要是⽤于对海量数据进⾏近实时的分析处理,可⽤于机器学习和数据挖掘
主流代表为Elasticsearch, Solr等.
3.3 列式数据库
这类数据库的主要特点是具有很强的可拓展性
关系型数据库都是以⾏为单位来存储数据的, 擅长以⾏为单位的读⼊处理, ⽐如特定条件数据的获取. 因此, 关系型数据库也被成为⾯向⾏的数据库。相反,⾯向列的数据库是以列为单位来存储数据的,擅长以列为单位读⼊数据。
这类数据库想解决的问题就是传统数据库存在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化,将数据存储在记录中,能够容纳⼤量动态列。由于列名和记录键不是固定的,并且由于记录可能有数⼗亿列,因此可扩展性存储可以看作是⼆维键值存储。
什么是关系数据库主流代表为HBase等.
3.4 图数据库
将数据库图形化,数据结构是图结构,
4. ⼏种⾮关系型数据库对⽐
Redis MongoDB ElasticSearch Hbase Neo4J
数据结构键值对的key-value形
Json⽂档格式Json⽂档格式
列簇式存储,将同⼀列
数据存到⼀起
图结构
典型
应⽤场景缓存和并发数据库
1. 做缓存数据库
2. 海量数据且对允许少许
数据丢失, 例如⽤户评论数据, 点赞数据等
海量数据进⾏搜索应⽤, 例如⽹
站搜索页⾯的数据
⼤数据分布式系统,海
量数据且数据⽐较分
社交⽹络,推荐系
统等
优点1. 数据存在内存中 2.
线程安全 3. 读写效率
1. 存储海量数据
2. 表结构可变
数据量⼤,基于Lunence倒排索
引原理,能实现海量数据分词搜
1.⾼扩展性
2. 海量数
利⽤图结构相关
算法,符合⼈的思
缺点1.数据⽆结构化 2. 存
储少量数据
读写效率不如Reids读写效率不如Redis
优点也是缺点, 没有太
多花哨的功能
不好做分布式系
真实开发也是多种数据库结合使⽤, 如图下图所⽰:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。