zoukankan      html  css  js  c++  java
  • MongoDB简介

      公司项目数据库用的是MySQL和MongoDB这两个数据库。我还记得面试的时候问到MongoDB这个知识点,当时支支吾吾的讲不出太多,这次改bug,因为不熟悉MongoDB数据库遇到了一些小困难,所以抽时间补一补MongoDB。
     
    什么是MongoDB?
    MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
    1.在高负载的情况下,添加更多的节点,可以保证服务器性能。
    2.MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
    3.MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
     MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
     
    功能特性
    面向集合
        数据被分组到若干集合,这些集合称作聚集(collections). 在数据库里每个聚集有一个唯一的名字,可以包含无限个文档
    模式自由
        无需知道存储数据的任何结构定义
    文档型
        存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档
    支持动态查询
    支持完全索引,包含内部对象
    支持复制和故障恢复
        使用复制可以将数据副本保存到多台服务器上
        基于副本集,即使一台或多台服务器出错,也可以保证应用程序正常运行和数据安全
    高效的二进制数据存储,包括大型对象(比如视频)
    支持分片
        指将用户拆分,将其分散存放在不同机器上的过程,用于处理更大的负载
        支持自动分片
    支持多语言
        Java、Ruby、C++、PHP、Python、JavaScript等

    优点:

    1.更高的写负载
    2.处理超大规模的单表
    3.不可靠环境保证高可用性
    4.使用基于位置的数据查询,查询速度快
    5.非结构化数据的爆发增长
        表格大于1GB的情况下,添加1个新的字段不会对表格有任何影响,这个过程会非常快速

    缺点:

    1.不支持事务
    2.磁盘空间占用过大
    3.删除记录不释放空间

    MongoDB与MySQL的对比

    数据库 MongoDB MySQL
    数据库模型 非关系型 关系型
    存储方式 以类JSON的文档的格式存储 不同引擎有不同的存储方式
    查询语句 MongoDB查询方式(类似JavaScript的函数) SQL语句
    数据处理方式 基于内存,将热数据存放在物理内存中,从而达到高速读写 不同引擎有自己的特点
    事务性 仅支持单文档事务操作,弱一致性 支持事务操作
    占用空间 占用空间大 占用空间小
    join操作 MongoDB没有join MySQL支持join 
  • 相关阅读:
    开源交易所源码搜集
    域名
    国外大牛博客
    Fomo3D代码分析以及漏洞攻击演示
    Small组件化重构安卓项目
    html span和div的区别
    七牛云
    以太坊钱包安全性保证
    跨域问题
    checkout 到bit/master分支
  • 原文地址:https://www.cnblogs.com/luckyliulin/p/9406502.html
Copyright © 2011-2022 走看看