前言

NoSQL:not only SQL(不No SQL啊),它的意思是:在关系数据库中使用关系数据库时适用,但在关系数据库中不适合本地使用其它数据库。NoSQL了弥补关系型数据库的不足,能够算是关系型数据库的一个补充吧。

可是必须明确一点。NoSQL不是为了代替关系型数据库。也无法代替关系型数据库,它和关系型数据库是各有长处的。

和关系型数据库的比較

要解说NoSQL数据库。必定要先讲一下传统的关系型数据库。关系型数据库的长处:

1、通用型、高性能。关系型数据库是被设计成能够解决大部分的应用需求的。

2、数据一致性。

3、数据更新开销小。

4、能够join(join是指表连接)

关系型数据库的不足:

1、大量数据的写入。

2、数据更新可能造成表结构的变更。关系型数据库是要预定义好表的。所以数据结构一旦有变更就要连带变更整个表,以及相关的索引等,代价很高。

3、字段不固定的应用。假设一个应用的字符无法确定,那么在设计数据库表的时候就会很棘手。

4、简单查询。关系型数据库每次查询都要经历一些列复杂的操作。这对于一些简单的查询显然会造成性能的低下。

NoSQL的长处:

1、易于数据的分散。

2、更easy通过提升提升规模而提高性能。

NoSQL更易于通过多台便宜server组建集群。从而减少成本。

所以利用NoSQL数据库非常easy实现高性能、更加灵活的数据库系统。

分类

以下介绍下NoSQL的分类。

NoSQL能够大致分为以下三类:

1、键值存储。

最常见的一类,也就是通过键-值对来存储数据。这一类又能够分为暂时性(memcached)、永久性(Flare等)、两者兼具(redis)三类。

当中暂时性是把数据存储到内存中。这样假设机器重新启动数据就会所有丢失。

永久性则能够把数据存储在磁盘等持久性存储介质中。

2、面向文档的数据库。

这样的数据库的特点是不须要定义表结构就能够直接存储数据。同一时候支持复杂的查询条件。MongoDB就是属于这样的类型。

3、面向列的数据库。主要是和面向行的相比較(如今的主流数据库比方关系型数据库都是面向行的),有扩展性的长处,在处理大量数据的时候比較有优势。

可是这样的类型的数据库应用起来比較困难。HBase就是这样的类型的数据库。

用例

以下简介几个NoSQL数据库的用例。

1、memcached。memcached最常见的使用方法就是作为缓存了。能够把memcached作为关系型数据库和应用程序之间的中间层,并把关系型数据库中经常使用的数据保存在memcached中。同一时候,也能够把memcached作为音乐文件等文件的缓存。

2、redis。不同于memcached。redis是能够作为一个完整的数据库来使用的。redis的一个典型应用就是weibo系统,redis能够使实现数据的快速读写,同一时候数据的存储具有非常高的灵活性,非常适合微博这种应用。新浪微博就用到了redis。redis在微博系统中的应用能够參考:http://blog.csdn.net/l1902090/article/details/36203749


版权声明:本文博客原创文章,博客,未经同意,不得转载。

NoSQL简要数据库的更多相关文章

  1. .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB

    今天给大家介绍一个不错的小巧轻量级的NoSQL文件数据库LiteDB.本博客在2013年也介绍过2款.NET平台的开源数据库: 1.[原创]开源.NET下的XML数据库介绍及入门 2.[原创]C#开源 ...

  2. NoSQL,关系型数据库,行列数据库对比、类比

    数据库对比.类比 关系型数据库.NoSQL 关系型数据库 表与表之间有关系.表存储一些格式化的数据结构,每个元组字段的组成都一样,这样便于表之间的联结操作.不过也限制了其性能瓶颈. 更支持SQL,支持 ...

  3. levelDB数据库使用及实例 - 高性能nosql存储数据库

    LevelDB是google公司开发出来的一款 超高性能kv存储引擎,以其惊人的读性能和更加惊人的写性能在轻量级nosql数据库中鹤立鸡群. 此开源项目目前是支持处理十亿级别规模Key-Value型数 ...

  4. 什么时候该使用NoSQL存储数据库?

    原文地址:http://www.jdon.com/39240 文章总结以下几点:1.频繁写,很少读统计数据,比如点击率,应该使用基于内存的in-memory的key/value存储数据库如Redis, ...

  5. BDB (Berkeley DB)简要数据库(转载)

    使用最近DBD.然后搜了下相关资料,首先公布的是一门科学: 转会http://www.javaeye.com/topic/202990 DB综述DB最初开发的目的是以新的HASH訪问算法来取代旧的hs ...

  6. neo4j nosql图数据库学习

    neo4j 文档:https://neo4j.com/docs/getting-started/current/cypher-intro/ 1.索引 # 给某类标签节点的属性添加索引 CREATE I ...

  7. Expo大作战(十六)--expo结合firebase 一个nosql数据库(本章令我惊讶但又失望!)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  8. .NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部 ...

  9. 10个出色的NoSQL数据库

    http://www.infoq.com/research/nosql-databases?utm_source=infoqresearch&utm_campaign=lr-homepage ...

随机推荐

  1. 《JavaScript权威指南》拾遗(上)

    一.语言基础         1.javascript中,只有null和undefined是无法拥有方法的值,它们都没有包装对象.typeof null == ‘object' , typeof un ...

  2. php随笔7-thinkphp OA系统 JS 文本框输入实时控制字数

    JS: //多行文本输入框剩余字数计算 function checkMaxInput(obj, maxLen) { if (obj == null || obj == undefined || obj ...

  3. 手把手教你图片转ASCII码图

    效果图 基本思路 把图片每个像素点的信息拿出来,最重要的是拿到rgb的值 把每个像素点由rgb转成灰度图像,即0-255 给0-255分级,把每个等级的像素点转换成ascii码,完成 实现 第一步:获 ...

  4. 查找最小的k个元素

    题目:输入n个整数,输出其中最小的k个. 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4. 两种思路,无非就是时间与空间的妥协. 限制空间的时候要对原数组进行排序, ...

  5. Android dp和sp的用法汇总

    1 > dp 是跟像素密度无关的单位,也就是说在相同尺寸.但不同的分辨率的手机上,用dp标识的东西,显示的大小是一样的. sp是用于标识字体的,它不仅跟屏幕尺寸有关,还跟设置的系统字体大小有关. ...

  6. paip.php-gtk 桌面程序 helloworld总结

    paip.php-gtk 桌面程序 helloworld总结 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.cs ...

  7. Objective-C开发编码规范:4大方面解决开发中的规范性问题

    Objective-C 编码规范,内容来自苹果.谷歌的文档翻译,自己的编码经验和对其它资料的总结. 概要 Objective-C 是一门面向对象的动态编程语言,主要用于编写 iOS 和 Mac 应用程 ...

  8. 错误处理try catch

    <?phpfunction inverse($x) { if (!$x) { throw new Exception('被除数不能为0'); } if ($x>31) { throw ne ...

  9. zabbix 邮件告警配置

    使用外部邮箱账号发送报警邮件设置 一.关闭sendmail或者postfix service sendmail stop #关闭 chkconfig sendmail off #禁止开机启动 serv ...

  10. BufferedInputStream 源码分析

    一.简介 BufferedInputStream会缓存一部分数据(默认8K),这个函数的作用就是读取更多的数据到缓存,必要的时候会扩大缓存的内容. 在该类中有几个重要的标志位:markpos,pos, ...