数据库大师成长日记:您最需要了解的NoSQL非关系型数据库

朋友们,我们平时使用的数据库,大多都是关系型数据库,包括MySQL、PostgreSQL、SQLServer等。关系型数据库的特点是数据的存储通过二维表格实现,将数据存储在相互独立的表格中。

近年来,随着互联网的飞速发展,数据的形态发生了很大改变,非关系型数据库NoSQL应运而生、越来越流行。NoSQL主要包括键值(Key-Value)存储数据库、列存储(Column-oriedted)数据库、面向文档(Document-Oriented)数据库、图形(Graph)数据库四种,下面介绍三款最常用的NoSQL数据库。

Memcached(键值数据库)

Memcaced是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的web应用,最初版本由LiveJoumal 的Brad Fitzpatrick在2003年开发完成。目前全球有非常多的用户都在使用它来架构主机的大负载网站或提升主机的高访问网站的响应速度。

Memcached是一种纯内存缓存系统,数据就像一张巨大的hash表,数据以key-value对的方式存在。通过缓存经常被存取的对象或数据,从而减轻了频繁读取数据库的压力,提高网站的响应速度,构建出快速更快的可扩展的Web应用。

Memcached非常适合需要超高性能读写速度、持久化保存的应用场景,但是最近几年逐渐被其他的持久化产品替代如Redis。

Redis(键值数据库)

Rediskey-value型存储系统。相比Memcached,redis支持的存储value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等。这些数据类型都支持push/pop、add/remove及取交集、并集和差集及更丰富的操作,而且这些操作都是原子性的。

为了保证效率,redis的数据都是缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在基础上实现了master-slave(主从)同步。

Redis提供了Python、Ruby、Erlang、PHP客户端,使用非常方便。支持内存缓存、支持持久化存储、数据库类型更丰富、支持主从集群、分布式 、支持队列等特殊功能。

MongoDB(文档数据库)

MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系数据库的。MongoDB支持的数据库结构非常松散,类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongodb最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB使用高效的二进制存储数据,她具有面向集合(Collenction-Orented)存储、模式自由(schema-free)、支持动态查询、支持完全索引、支持复制和故障恢复、自动处理碎片、以支持云计算层次的扩展性等诸多优异性能,非常流行、应用也非常广泛。

虽然当前数据库的主流还是关系型数据库,但NoSQL的应用只会越来越广泛,原因非常简单,因为当代和未来我们面对的数据类型越来越复杂,传统的数据存储方式已经越来越无法满足要求。

朋友们,如果您有兴趣,可以更深入的了解下NoSQL,对您未来的学习、就业肯定会有莫大的帮助。

原文地址:https://www.cnblogs.com/syncnavigator/p/10198284.html

时间: 2025-01-02 05:00:25

数据库大师成长日记:您最需要了解的NoSQL非关系型数据库的相关文章

数据库大师成长日记:SQL Server如何防止开发人员获取敏感数据

朋友们,我们在使用SQLServer数据库的时候,数据库表的字段值都是公开的.如果您是项目负责人,知道所有实际数据无可厚非,但如果这些数据比较敏感,您并不希望开发团队的其他人员知道该怎么办呢? 在上一篇<SQL Server如何进行元数据底层加密>中,我详细说明了SQL Server数据加密用到的各种SQL语法,这一讲我们结合实例实战一下对数据库字段进行加密的方法和过程. 比如您是项目负责人,要给客户开发一个工资系统.一般企业的工资都是保密的,如果您直接把工资信息都明文放在数据库中,您的开发团

数据库大师成长日记:巧用SQL语句查看SQL Server的结构信息

常用SQLServer的朋友们,绝大部分情况下,我们写SQL脚本主要用来处理我们自己的数据,比如读取.插入数据等.但在有些情况下,我们可能要查看我们定义的一些元素,比如我们定义的表都有哪些.表结构如何.存储过程的源码等等.这时候,我们学习的常规的SQL脚本可能就无法处理了. 比如您要写一个管理数据库的程序,就要知道数据库中有什么表.表结构如何,以及视图.存储过程的脚本源码等.下面我就说说如何获取数据库的结构信息. 获取数据库及配置信息 1.获取数据库配置信息 exec sp_server_inf

数据库大师成长日记:巧用SQL语句,小技巧解决大问题!

朋友们,我们在写SQL脚本的时候,可能一些看起来不起眼的小问题.却让我们非常头疼.比如我们要写一个备份数据库的脚本,如果我们对服务器的硬盘分区和使用情况很了解,备份当然没有问题,但如果我们不知道服务器硬盘如何分区.每个分区还有多少空间可用的情况下,您写的备份语句可能就不好执行了. 下面,我就日常我们可能会碰到的一些"大问题",通过简单的SQL脚本进行实现. 查看硬盘分区与可用空间 这个通过调用master数据库下面的存储过程xp_fixeddrives很容易实现. EXEC maste

关系型数据库与非关系型数据库区别

关系型数据库(Mysql和Oracle) 1.表和表.表和字段.数据和数据存在着关系 优点: 1.数据之间有关系,进行数据的增删改查的时候是非常方便的 2.关系型数据库是有事务操作的,保证数据的完整性和一致性. 缺点: 1.因为数据和数据是有关系的,底层是运行了大量的算法,大量算法会降低系统的效率,会降低性能 2.面对海量数据的增删改查的时候会显的无能为力 3.海量数据对数据进行维护变得非常的无力 常见应用: 适合处理一般量级的数据(银行转账和钱) 非关系数据库的(redis和MangDB) 为

大数据时代的数据存储,非关系型数据库MongoDB(一)

爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Database Management System)一直是最主流的数据库解决方案,他运用真实世界中事物与关系来解释数据库中抽象的数据架构.然而,在信息技术爆炸式发展的今天,大数据已经成为了继云计算,物联网后新的技术革命,关系型数据库在处理大数据量时已经开始吃力,开发者只能通过不断地优化数据库来解决数据量的问题,但优化毕竟不是一个长期方案,所以人们提出了一种新的数据库解决方案来迎接大数据时代的到来——NoSQ

非关系型数据库MongoDB

爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Database Management System)一直是最主流的数据库解决方案,他运用真实世界中事物与关系来解释数据库中抽象的数据架构.然而,在信息技术爆炸式发展的今天,大数据已经成为了继云计算,物联网后新的技术革命,关系型数据库在处理大数据量时已经开始吃力,开发者只能通过不断地优化数据库来解决数据量的问题,但优化毕竟不是一个长期方案,所以人们提出了一种新的数据库解决方案来迎接大数据时代的到来——NoSQ

关系型数据库与非关系型数据库的区别

在关系型数据库中,导致性能欠佳的最主要因素是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询.     为了保证数据库的ACID特性(ACID:● 安全存储合适的数据  ●快速检索合适的数据  ●支持多个并行的用户会话 ), 我们必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性

&#8203;NOSQL与关系型数据库的区别

关系型数据库存在的瓶颈 1.高并发读写需求网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈 2.海量数据的高效率读写网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的 3.高扩展性和可用性在基于web的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负

关系型数据库和非关系型数据库

目前的市面上的关系型数据有:Oracle.DB2.Microsoft SQL Server.Microsoft Access.MySQL等. 非关系型数据库有:NOSQL,Cloudant 非关系型数据库主流的还是NOSQL,  那么 NOSQL和关系型数据库的区别是: 优:1.成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜. 2.查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查