浅谈NoSQL之MongoDB数据库
对于SQL数据库(关系型数据库)我们大家都有所了解,比如MySQL,sqlserver,oracle等数据库。在日常的开发过程中我们遇到服务器端的数据存储时几乎第一反应就是使用SQL据库像我们最常见的Mysql数据库。
数据库存在的意义就是存储和读取数据,SQL数据库用二维表存储数据,在使用过程中我们会觉得这种存储方式可以很形象的表示出数据之间的关系。尤其是SQL语句的出现使得SQL数据库的使用变得更加广泛容易。但是注重严密的数据关系带来的就是拓展性差和大量数据存储时性能的问题。
NoSQL数据库(非关系数据库)它的出现就是为了解决上述问题。它去掉了数据之间的关系重视数据的读写使得它在大数据的存储上表现出很棒的性能,
它没有固定的表结构使得它在拓展上表现的非常灵活。
MongoDB是由C++语言编写的基于分布式文件存储的开源数据库系统是最常用的NoSQL数据库也是最像SQL类型的数据库。它采用的数据存储方式是json----key:value方式,在存储数据时不需要提前规定表的结构它的数据存储在文档中(document)大量的文档组成集合(collection)大量的集合组成数据库。

MongoDB的数据存储于SQL语句的对照:

MongoDB支持的数据类型有:null、boolean、String、objectId、32位整数、64位整数、64位浮点数、日期、正则表达式、js代码、二进制数据、数组、内嵌文档、最大值、最小值、未定义类型。
MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB的使用场景:
1:数据的插入,更新和查找。
2:适合文档化格式的存储与查询。
3:适合由数十或数百台服务器组成的数据库。
不适用的场景:
1:对于事务型要求比较高的系统。
2:传统的商业智能应用。
3:复杂的表级联查询。
总结:对于实际的项目应用中可以结合数据的特征和数据存储量进行合理的数据库选取,必要时可以结合使用SQL数据库和NoSQL数据库,这样可以极大程度的缓解数据库的性能压力展现数据之间的关系。
浅谈NoSQL之MongoDB数据库的更多相关文章
- NoSql 中Mongodb数据库的使用
1.NoSql数据库简介 2.MongoDB数据库的简介 3.MongoDB下Windows下的安装
- 浅谈我的MongoDB学习(二)
上一篇简单讲了mongodb的安装,mongo的windows服务安装,这样服务器重启windows服务会自动重启mongodb的server,然后我们就可以用客户端去管理数据了.mongodb客户端 ...
- 浅谈MySQL与mongodb的区别
讨论MySQL与mongodb使用上的区别以及可能适用的应用场景,不深入到数据库的实现细节方面.鉴于个人水平有限,文章可能存在错误之处,希望各位指正. 代码编写 mongodb支持reactor,可以 ...
- 浅谈JDBC访问MySQL数据库
经过我自己的总结后,其实很简单,只需要记住四个步骤,JDBC这部分的学习就可以掌握差不多了,请多多指教. 加载注册JDBC驱动: 打开数据库: 创建向数据库发送sql语句的statement: Res ...
- 浅谈我的MongoDB学习(一)
这是第一次写博客,不当之处敬请见谅,最近由于项目需要,对mongodb略有研究,网上也有一些相关资料,下面是我自己摸索的一些东西,希望能跟大家分享一下当然,这也是我自己第一次在项目中使用,若理解有误, ...
- 浅析MongoDB数据库的海量数据存储应用
[摘要]当今已进入大数据时代,特别是大规模互联网web2.0应用不断发展及云计算所需要的海量存储和海量计算发展,传统的关系型数据库已无法满足这方面的需求.随着NoSQL数据库的不断发展和成熟,可以较好 ...
- 五分钟DBA:浅谈伪分布式数据库架构
[IT168 技术]12月25日消息,2010互联网行业技术研讨峰会今日在上海华东理工大学召开.本次峰会以“互联网行业应用最佳实践”为主题,定位于互联网架构设计.应用开发.应用运维管理,同时,峰会邀请 ...
- 数据库的编码浅谈(ZHS16GBK与US7ASCII)
数据库的编码浅谈(ZHS16GBK与US7ASCII) 2007-11-15 17:14:18 分类: Oracle SQL> SELECT RAWTOHEX('郭A军') from dual ...
- 浅谈.net中数据库操作事务
.net中的事务 关键几点 概念:1:什么是事务 2:什么时候用事务 3:基本的语法 (1): 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常 ...
随机推荐
- ZigBee心电传输(二)
不管怎样,还是在高手的帮助下完成了前面的硬件部分,现在进行ZigBee的心电AD采集和转换.需要把ZigBee重新拾起来. 首先明确下目标和思路吧,目标是将模拟心电信号通过AD转换,变为数字信号,再用 ...
- C++中的对象数组
类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性. 当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法. 例如,一个班有50个学生,我们定义了一个学生 ...
- WebSphere配置数据库连接池
通过WebSphere配置数据库连接池一共需要三项: 1.配置连接驱动,在这里叫:JDBC提供程序; 2.配置数据库连接池,在这里叫:配置数据源; 3.配置数据库登录帐号,密码,在这里 ...
- (转)javascript组件开发方式
作为一名前端工程师,写组件的能力至关重要.虽然javascript经常被人嘲笑是个小玩具,但是在一代代大牛的前仆后继的努力下,渐渐的也摸索了一套组件的编写方式. 下面我们来谈谈,在现有的知识体系下,如 ...
- Asp.Net HttpApplication请求管道与Session(一)
1.请求处理顺序执行事件 /********************请求处理顺序执行事件**********************/ /// <summary> /// 请求入站 /// ...
- OD调试9—实例:深入分析代码完成软件破解
OD调试9—实例:深入分析代码完成软件破解 爆破,是最初级的解决方案,不到万不得已,我们不直接修改JNZ通关.因为这样子的话,我们就享受不到破解.逆向的真正乐趣了. 了解程序背后按照剧情发展经常会出 ...
- DOM 其他一些特性
cookie 允许javascript程序读写HTTP cookie 的特殊的属性 domain 允许当Web页面之间交互时,相同域名下相互信任的Web服务器之间协作放宽同源策略安全限制 (JavaS ...
- AIX下解决POWERHA的脑裂问题
一.安装创建并发vg时必需的软件包clvm包,该包安装.升级.后必须重启os clvm包的描述:Enhanced Concurrent Logical Volume Manager 软件包在aix61 ...
- jQuery输入框提示自动完成插件 autocomplete
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Song of Pi
def main(): pi = ' # 预先给出需要比较的值 t = int(raw_input()) for _ in xrange(t): song = raw_input().strip(). ...