zoukankan      html  css  js  c++  java
  • MongoDB学习(一)简介

    本篇主要简单介绍一下MongoDB数据库。

          一、简介

          mongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像关系数据库的。

          mongoDB由C++编写,其名字来源于"humongous"这个单词,其宗旨在于处理大量数据。

          mongoDB可以运行在Windows、unix、OSX、Solaris系统上,支持32位和64位应用,提供多种编程语言的驱动程序。

          mongoDB支持的数据结构非常松散,是类似json的BSON格式,通过键值对的形式存储数据,可以存储复杂的数据类型。

          mongoDB支持的数据类型有:null、boolean、String、objectId、32位整数、64位整数、64位浮点数、日期、正则表达式、js代码、二进制数据、数组、内嵌文档、最大值、最小值、未定义类型。

          其中,内嵌文档我理解的并不是.doc.txt等文件,这里所指的文档是mongoDB的一个存储单元(相当于关系型数据当中的记录),在mongoDB中的表现形式为{key1:value1,key2:value2},而内嵌文档则是这样的形式{key1:value1,key2:{key2.1:value2.1,key2.2:value2.2}}。

          mongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

          二、mongoDB的特性:

           1. 面向集合存储。数据被分组到若干集合,每个集合可以包含无限个文档,可以将集合想象成RDBMS的表,区别是集合不需要进行模式定义。

           2. 模式自由。集合中没有行和列的概念,每个文档可以有不同的key,key的值不要求一致的数据类型。

           3. 支持动态查询。mongoDB支持丰富的查询表达式,查询指令使用json形式表达式。

           4. 完整的索引支持。mongoDB的查询优化器会分析查询表达式,并生成一个高效的查询计划。

           5. 高效的数据存储,支持二进制数据及大型对象(图片、视频等)。

           6. 支持复制和故障恢复。

           7. 自动分片以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器。

         三、 mongoDB的适用场景:

           1.  适合作为信息基础设施的持久化缓存层

           2. 适合实时的插入、更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性

           3. 适合文档化格式的存储及查询

           4. 适合由数十或数百台服务器组成的数据库

          四、mongoDB不适用场景:

            1. 要求高度事务性的系统。例如对于银行或会计等需要大量原子性复杂事物的应用程序来说,还是需要关系型数据库的。

            2. 传统的商业智能应用

            3. 复杂的表级联查询

  • 相关阅读:
    Spring AOP @Before @Around @After 等 advice 的执行顺序
    web服务启动spring自动执行ApplicationListener的用法
    Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
    ApplicationContextAware使用理解
    查询oracle比较慢的session和sql
    使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
    C#控制台程序中处理2个关闭事件的代码实例
    mysql优化----第一篇:综述
    HMM 隐马尔科夫模型
    EM 期望最大化算法
  • 原文地址:https://www.cnblogs.com/yangxia-test/p/3981431.html
Copyright © 2011-2022 走看看