网站怎么做登陆,软文形式推广产品,电商网站开发技术方向,电影模板哪个网站好前言#xff1a;Nosql not only sql#xff0c;意即“不仅仅是sql”#xff0c;泛指非关系型数据库。这些类型的数据存储不需要固定的模式#xff08;当然也有固定的模式#xff09;#xff0c;无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处…前言Nosql not only sql意即“不仅仅是sql”泛指非关系型数据库。这些类型的数据存储不需要固定的模式当然也有固定的模式无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处理的聚合模型主要分为KV键值对BSON列族图形时序向量等几种数据库结构。常见的NoSQL数据库有redis、MongoDB、Memcache、HBase、Clickhouse、Doris、Starlocks、Hive、BigTable、Cassandra、CouchDB、Neo4J、InfluxDBX、Prometheus等。 1、 数据库共有2种类型
关系型数据库和非关系型数据库
1关系数据库
MySQL、MariaDBMySQL的代替品、PostgreSQL、Microsoft Access、Google Fusion Tables、SQLite、DB2、FileMaker、Oracle、SQL Server、INFORMIX、Sybase、dBASE、Clipper、FoxPro、foshub。
几乎所有的数据库管理系统都配备了一个开放式数据库连接ODBC驱动程序令各个数据库之间得以互相集成。
2非关系型数据库NoSQL
redis、MongoDB、Memcache、HBase、Clickhouse、Doris、Starlocks、Hive、BigTable、Cassandra、CouchDB、Neo4J、InfluxDBX、Prometheus 2、关系型数据库和非关系型数据库的区别
1关系型数据库最典型的数据结构是表由二维表及其之间的联系所组成的一个数据组织 优点 易于维护都是使用表结构格式一致 使用方便SQL语言通用可用于复杂查询 复杂操作支持SQL可用于一个表以及多个表之间非常复杂的查询。
缺点 读写性能比较差尤其是海量数据的高效率读写 固定的表结构灵活度稍欠 高并发读写需求传统关系型数据库来说硬盘I/O是一个很大的瓶颈。
2非关系型数据库严格上不是一种数据库应该是一种数据结构化存储方法的集合可以是文档或者键值对等。 优点 格式灵活存储数据的格式可以是key,value形式、文档形式、图片形式等等文档形式、图片形式等等使用灵活应用场景广泛而关系型数据库则只支持基础类型。 速度快nosql可以使用硬盘或者随机存储器作为载体而关系型数据库只能使用硬盘 高扩展性 成本低nosql数据库部署简单基本都是开源软件。
缺点 不提供sql支持学习和使用成本较高 无事务处理 数据结构相对复杂复杂查询方面稍欠。 3、NoSql数据库是什么 NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管理系统的统称即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。 NoSQL 数据库专门构建用于特定的数据模型并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数据模型来访问和管理数据。这些类型的数据库专门针对需要大数据量、低延迟和灵活数据模型的应用程序进行了优化这是通过放宽其他数据库的某些数据一致性限制来实现的。
数十年来用于应用程序开发的主要数据模型是由关系数据库如 Oracle、DB2、SQL Server、MySQL 和 PostgreSQL使用的关系数据模型。直到近十几年才开始大规模采用和使用其他数据模型。为了对这些新类别的数据库和数据模型进行区分和分类创造了术语“NoSQL”。通常术语“NoSQL”与“非关系”可互换使用。 4、NoSql数据结构类型 NoSql中的数据是使用聚合模型来进行处理的。聚合模型主要分为KV键值对BSON列族图形等几种方式 KV键值对就是我们平常使用的map那样的存储模式 BSON在MongoDB中常用的一种数据类型是一种类json的一种二进制形式的存储格式简称binary json它和json一样支持内嵌的文档对象和数组对象 列族按列存储数据。最大的特点是方便存储结构和半结构化数据方便做数据压缩对针对某一列或者是某几列的查询有非常大的IO优势 图形不是放图形的放的是关系比如朋友圈社交网络广告推荐系统等专注于构建关系图谱 5、NoSql数据库的分类
1KV键值对数据库 临时性键值存储MemcachedRedis 永久性键值存储ROMARedis
应用场景内容缓存主要用于处理大量数据的高访问负载也用于一些日志系统等等
数据模型Key指向Value的键值对通常用HashTable来实现
优点查找速度快
缺点数据无结构化通常只被当做字符串或者是二进制数据
2面向文档的数据库MongoDBCouchDB Mongodb是一个基于分布式文件存储的数据库由c语言编写。 为web应用提供可扩展的高性能数据存储解决方案,是一个介于关系数据库和非关系数据库之间的产品是非关系数据中功能最丰富最像关系数据库的
应用场景WEB应用与key-value类似value是结构化的不同的是数据库能够了解到value的内容
数据模型Key-Value对应的键值对Value是结构化的数据
优点数据结构要求不严格表结构可变不需要像关系型数据库一样需要预先定义表结构
缺点查询性能不高而且缺乏统一的查询语法
3面向列的数据库CassandraHBase
应用场景分布式的文件系统
数据模型以列簇式存储将一列数据存储在一起
优点查找速度快可扩展性强更容易进行分布式扩展
缺点功能相对局限
4面向图形的数据库Neo4JInfoGrid
应用场景社交网络推荐系统等专注于构建关系图谱
数据模型图结构
优点利用图结构相关算法。比如最短路径寻址N度关系查找等等。
缺点很多时候要对整个图做计算才能得出需要的信息而且这种结构不太好做分布式的集群方案。 6、NoSql数据库的优点 易扩展nosql数据库种类繁多但是一个共同的特点都是去掉关系型数据库的关系型特性数据之间无关系这样就非常容易扩展也无形之间在架构层面上带来了可扩展的能力 大数据量和高性能Nosql数据库都具有非常高的读写能力尤其在大数据量下同样表现优秀这得益于它的无关系型数据库的结构简单。一般mysql使用query cache每次表的更新cache就会失效这是一种大粒度的cache在针对web2.0的交互频繁的应用cache性能不高而nosql的cache是记录级的是一种细粒度的cache所以nosql在这个层面上来说就要性能高很多了 多样灵活的数据模型Nosql无需事先为要存储的数据建立字段随时可以存储自定义的数据格式而在关系数据库里增删字段是一件非常麻烦的事情如果是非常大数据量的表增加字段简直就是一个噩梦 高可用NoSQL在不太影响性能的情况下就可以方便地实现高可用对的架构有些产品通过复制模型也能实现高可用。 7、关系型数据库和非关系型数据库的对比
既然OracleMySQL等传统的关系型数据库非常成熟并且已经大规模的商用为什么还要用NoSql呢 主要是由于随着互联网的发展数据量越来越大对性能的要求越来越高传统数据库存在着先天性的缺陷即单机单库性能瓶颈并且扩展困难。这样既有单机瓶颈却又扩展困难自然无法满足日益增长的海量数据存储及其性能要求所以才会出现各种各样的NoSql产品NoSql的根本性优势在于云计算时代简单易于大规模分布式扩展并且读写性能极高。 看下两者的对比 参考链接
NoSQL数据库简介 - 知乎