MongoDB系列教程(一):NoSQL起源
为什么出现NoSQL?
随着互联网的发展,当我们把一台服务器一台服务器变成两台服务器,当我们开始建立数据备份,当我们需要加一个缓冲层,来调整所有的查询,投入更多的硬件。
最后,需要将数据切分多个集群上,并重构大量的应用逻辑以适应这种切分。不久之后,你就会发现被自己数月前的设计数据结构限制住了。
随着web2.0的兴起,关系型数据库本身无法克服的缺陷越来越明显,主要表现为如下几点。
1、对数据高并发读写的需求
2、对海量数据的高效率存储和访问的需求。
3、对数据库的高可扩展性和高可用性的需求。
4、数据库事务一致性需求。
5、数据库写实性和读写时性需求。
6、对复杂SQL的查询,特别是对关联查询的需求。
NoSQL是Notonly SQL的缩写,NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常避免使用SQL的join操作,一般有水平可扩展性的特征。
NoSQL历史?
1、NoSQL一词最早出现在1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。
2、2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL概念,这时的NoSQL主要是指非关系型、分布式、不提供数据库设计模式。
3、2009年趋势高涨,被定为“非关系型的”数据存储,相对于关系型数据库运用,这一概念无疑是一种全新思维的注入。
SQL和NoSql的区别?
NoSQL具有如下几点
优点:
1、高并发读写
2、海量数据存储
3、高可扩展性
4、高可用性
缺点:
5、缺乏事务一致性
6、缺乏读写实时性
7、不支持复杂查询
NoSQL数据库类型
Key-value:key指Value的键值对,通常用hash table来实现
列式数据库:同一列数据存在一起
文档型数据库:Key-Value对应的键值对,Value为结构化数据产品:MongoDB
图结构数据库:以“图”为基本存储模型,产品:Neo4j,InfoGrid,InfiniteGraph
NoSQL数据库开源软件
1、Membase软件
2、Hypertable
3、ApacheCassandra
4、MongoDB
在这里我们用的是MongoDB,下篇MongoDB简介,以及实例操作。
相关推荐
-
8种主流NoSQL数据库系统特性对比和最佳应用场景
曾在多家大公司任职的软件架构师兼顾问Kristóf Kovács在博客中对主流的NoSQL数据库(Cassandra.Mongodb.CouchDB.Redis.Riak.Membase.Neo4j以及HBase)进行了全方位的对比. 虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举. 但是NoSQL数据库之间的不同,远超过两SQL数据库之间的差别.这意味着软件架构师更应该在项目开始时就选择好一
-
最新统计排名前十的SQL和NoSQL数据库排行榜
本排名根据DB Engines的排行榜得来,该排行榜从人气上分析了市场上200个不同的数据库,这里一览Top 10. 无可争议的Top 3 Oracle.MySQL及Microsoft SQL Server一直以绝对的优势霸占着排行榜的前三名,以独特的优势瓜分了市场上最多的用户. 1. Oracle 11g 首次发行:1980年 许可机制:Proprietary 是否SQL:是 Oracle是重要商业项目的首选,同时也是市场上最古老的主流数据库产品,Oracle有4个不同的版本可用:Enter
-
深入解析NoSQL数据库的分布式算法(图文详解)
尽管NoSQL运动并没有给分布式数据处理带来根本性的技术变革,但是依然引发了铺天盖地的关于各种协议和算法的研究以及实践.在这篇文章里,我将针对NoSQL数据库的分布式特点进行一些系统化的描述. 系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性.这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去.尽管NoSQL运动并没有给分布式数据处理带来根本性的技术变革,但是依然引发了铺天盖地的关于各种协议和算法的研究以及实践.正是通过这些尝试逐渐总
-
PHP对MongoDB[NoSQL]数据库的操作
一.MongoDB简介 MongoDB (名称来自"humongous") 是一个可扩展的.高性能.开源.模式自由.面向文档的数据库,集文档数据库.键值对存储和关系型数据库的优点于一身.官方站点:http://www.mongodb.org/,MongoDB特点: •面向文档存储(类JSON数据模式简单而强大)•动态查询•全索引支持,扩展到内部对象和内嵌数组•查询记录分析•快速,就地更新•高效存储二进制大对象 (比如照片和视频)•复制和故障切换支持•Auto-Sharding自动分片支
-
NoSQL 数据库你应该了解的 10 件事
四分之一个世纪以来,关系型数据库(RDBMS)一直是主流数据库模型.但是现在非关系型数据库,"云"或者"NoSQL"数据库,正在作为一种替代数据库模型获得越来越多的占有率.本文中我们将关注非关系型 NoSQL 数据库的 10 个关键特征:排在前 5 位的优点和前 5 位的挑战.提示:点击链接可以下载本文 英文版PDF NoSQL 的五大有点 1:弹性扩展 多年来,数据库负载需要增加时,数据管理员只能依赖于纵向扩展(scale-up)--买更多更强的服务器,而不是依赖
-
NoSQL开篇之为什么要使用NoSQL
NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会. 非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希望跟我一样有兴趣的朋友加入进来.这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自己的
-
初识NoSQL NoSql数据库入门 NoSql数据库基础知识
做了一年的大一年度项目了,对于关系型数据库结构还是有些了解了,有的时候还是觉得这种二维表不是很顺手.在看过一篇文章之后,对NoSQL有了初步的了解,(https://keen.io/blog/53958349217/analytics-for-hackers-how-to-think-about-event-data).这篇文章写的很好,确实写出来了在实际情况下NoSQL的"用武之地",而且用了MineCraft作分析,但是也许不够全面.比如文章中只是提到了,entity数据用关系型怎
-
8 种常用的 NoSQL 数据库系统对比分析
Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章. 虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举. 但是NoSQL数据库之间的不同,远超过两 SQL数据库之间的差别.这意味着软件架构师更应该在项目开始时就选择好一个适合的 NoSQL数据库.针对这种情况,这里对 Cassandra.Mongodb.CouchDB.Redis. Ria
-
NoSQL数据库的分布式算法详解
今天,我们将研究一些分布式策略,比如故障检测中的复制,这些策略用黑体字标出,被分为三段: 数据一致性.NoSQL需要在分布式系统的一致性,容错性和性能,低延迟及高可用之间作出权衡,一般来说,数据一致性是一个必选项,所以这一节主要是关于 数据复制 和 数据恢复 . 数据放置.一个数据库产品应该能够应对不同的数据分布,集群拓扑和硬件配置.在这一节我们将讨论如何 分布 以及 调整数据分布 才能够能够及时解决故障,提供持久化保证,高效查询和保证集训中的资源(如内存和硬盘空间)得到均衡使用. 对等系统.像
-
NoSQL和Redis简介及Redis在Windows下的安装和使用教程
NoSQL简介 介绍redis前,我想还是先认识下NoSQL,即not only sql, 是一种非关系型的数据存储,key/value键值对存储.现有Nosql DB 产品: Redis/MongoDB/Memcached/Hbase/Cassandra/ Tokyo Cabinet/Voldemort/Dynomite/Riak/ CouchDB/Hypertable/Flare/Tin/Lightcloud/ KiokuDB/Scalaris/Kai/ThruDB, 等等~~~ 为什么需要
-
关于NoSQL之MongoDB的一些总结
NoSQL已经流行了很长一段时间,那么究竟是什么场景下你才更需要用到这些"新兴事物",就比如MongoDB?下面是一些总结: 你期望一个更高的写负载 默认情况下,对比事务安全,MongoDB更关注高的插入速度.如果你需要加载大量低价值的业务数据,那么MongoDB将很适合你的用例.但是必须避免在要求高事务安全的情景下使用MongoDB,比如一个1000万美元的交易. 不可靠环境保证高可用性 设置副本集(主-从服务器设置)不仅方便而且很快,此外,使用MongoDB还可以快速.安全及自动化
-
纯Python开发的nosql数据库CodernityDB介绍和使用实例
看看这个logo,有些像python的小蛇吧 .这次介绍的数据库codernityDB是纯python开发的. 先前用了下tinyDB这个本地数据库,也在一个api服务中用了下,一开始觉得速度有些不给力,结果一看实现的方式,真是太鸟了,居然就是json的存储,连个二进制压缩都没有. 这里介绍的CodernityDB 也是纯开发的一个小数据库. CodernityDB是开源的,纯Python语言(没有第三方依赖),快速,多平台的NoSQL型数据库.它有可选项支持HTTP服务版本(Codernit
-
大数据时代的数据库选择:SQL还是NoSQL?
一.专家简介VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域.Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时.二.SQL经历时间的考验,并仍然在蓬勃发展结构化查询语言(SQL)是经过时间考验的胜利者,它已经主宰了几十年,目前大数据公司和组织(例如谷歌.Facebook.Cloudera和Apache)正在积极投资于SQL
-
NoSQL反模式 - 文档数据库篇
我们设计关系数据库Schema的都有一套完整的方案,而NoSQL却没有这些.半年前笔者读了本<SQL反模式>的书,觉得非常好.就开始留意,对于NoSQL是否也有反模式?好的反模式可以在我们设计Schema告诉哪里是陷阱和悬崖.NoSQL宣传的时候往往宣称是SchemaLess的,这会让人误解其不需要设计Schema.但如果不意识到设计Schema的必要,陷阱就在一直在黑暗中等着我们.这篇文章就总结一些别人的,也有自己犯过的深痛的设计Schema错误. NoSQL数据库最主流的有文档数据库,列存
随机推荐
- ruby ftp封装实例详解
- MongoDB 游标详解及实例代码
- vue模板语法-插值详解
- Windows批处理双击切换IP地址方便、快捷
- kNN算法python实现和简单数字识别的方法
- javascript的回调函数应用示例
- MySql带OR关键字的多条件查询语句
- Android ToggleButton 详解及实例代码
- JS实现下拉框的动态添加(附效果)
- vbs实现的下拉框对应键入值
- SQL查询中需要使用别名问题
- SQLSERVER中忽略索引提示
- SQL Server 数据库索引其索引的小技巧
- Javascript Objects详解
- Android仿微信实现首字母导航条
- java计算时间差的方法
- JavaScript数据结构中栈的应用之表达式求值问题详解
- JavaScript实现添加、查找、删除元素
- java设计模式笔记之代理模式
- java 中的static关键字和final关键字的不同之处