mongodb与sql关系型数据比较

摸索了几天,大体也初步算入了mongodb的门,仔细一想,mongodb和传统关系型数据库差别很大了。

传统关系型数据库中,一个数据库有一个或者多个表(Table),表中的数据是称之为记录,一行一行的,每行数据分不同的字段。

举一个容易理解的例子。一个人有姓名,性别,年龄,以及很多张银行卡;

如果使用关系型数据库,我们可能会是使用两张或者更多表来做记录,一张用户表来存用户的基本信息,另一张表通过用户id,和银行卡id,通过多条记录来存此人的多张银行卡对应关系;

那如果是在mongodb中,那就对应一个文件了

举个例子就是这样的数据了

{
Name:'小明',Sex:'男',Age:'25',
BankCards:[ ‘123445678','12233333','5555555']
}

所以到目前的mongodb中,它是没有关系这个概念的;

此图反应了mongdb和传统的关系型数据库(mysql,oracle)之间的对比;

应该说是,mongodb存的是一个完整的对象了,这个对象数据是已文档的形式存储的。至于它有什么优点,网上一大片说它优点,这里抓网络内容贴上:

架构:MongoDB是文档型数据库,其中一个集合保存不同的不同的文件。字段的数量,内容和该文件的大小可以是不同于从一个文件复制到另一个。

一个单一的对象是结构清晰

没有复杂的连接

深查询能力。 MongoDB支持动态查询使用基于文档的查询语言,如SQL几乎一样强大的文件

调优

易于规模化:MongoDB是易于扩展

不需要数据库对象的应用程序对象转换/映射

使用内部存储器存储(窗口)工作组,从而实现更快的数据存取

不过缺点有很多,首先:不支持事物,而不会支持这种什么inner join ,left join等这样的关系连接,(因为不是关系型数据库嘛)。还有个我觉得是缺点,占用空间!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Mongodb读数据操作

    Mongodb读数据操作 Mongodb读数据(文档documents)操作有两个方法 >find(); >findOne(); find()方法是最主要的方法,find方法返回一个指向包含查询结果集数据的游标(cursor) 标准命令是:db.collection.find(<query>, <projection> ) 其中<query>相当于sql语句中的where 条件语句: <projection>相当于要取出的字段. 这里要注意的是,

  • Python实现批量读取图片并存入mongodb数据库的方法示例

    本文实例讲述了Python实现批量读取图片并存入mongodb数据库的方法.分享给大家供大家参考,具体如下: 我的图片放在E:\image\中,然后使用python将图片读取然后,显示一张,存入取一张(可以注释掉显示图片的语句),通过Gridfs的方式存入图片.代码如下: # --* coding=utf-8 *-- from cStringIO import StringIO from pymongo import MongoClient import gridfs import os imp

  • c#操作mongodb插入数据效率

    mongodb的数据插入速度是其一个亮点,同样的10000条数据,插入的速度要比Mysql和sqlserver都要快,当然这也是要看使用者怎么个使用法,你代码如果10000次写入使用10000次连接,那也是比不过其他数据库使用事务一次性提交的速度的. 同样,mongo也提供的一次性插入巨量数据的方法,因为mongodb没有事务这回事,所以在在C#驱动里,具体方法是InsertManyAsync()一次性插入多个文档.与之对应的是InsertOneAsync,这个是一次插入一个文档: Insert

  • mongoDB 实现主从读写分离实现的实例代码

    mongoDB主从读写分离 MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式, 点击查看.如果您的环境不符合副本集模式可参考本文,来实现主从读写分离. resources.properties mongodb_read.host=10.0.0.45 mongodb_read.port=27017 mongodb_read.apname=ecsp mongodb_read.username= mongodb_read.password= mongodb_write.host=

  • 了不起的node.js读书笔记之mongodb数据库交互

    这周的学习主要是nodejs的数据库交互上,并使用jade模板一起做了一个用户验证的网站.主要是遇到了一下几个问题. 1.mongodb版本过低 npm ERR! Not compatible with your operating system or architecture: mongodb@0.9.9 0.9.9只支持linux,darwin,freebsd这几个系统,最新版本已支持wins. 2.nodejs进行insert操作后:无法读取结果 复制代码 代码如下: app.post('

  • python读取json文件并将数据插入到mongodb的方法

    本文实例讲述了python读取json文件并将数据插入到mongodb的方法.分享给大家供大家参考.具体实现方法如下: #coding=utf-8 import sunburnt import urllib from pymongo import Connection from bson.objectid import ObjectId import logging from datetime import datetime import json from time import mktime

  • mongodb实现数组对象求和方法实例

    前言 mongodb在计算集合数组值时候,我们通常会想到使用$group与$sum,但是如果是数组里面多个json对象,并且还需要根据条件过滤多个对象的内容该如何处理? 现在让我们来实现它,假设mongodb中有个user集合,其数据内容如下: /* 1 */ { "_id" : ObjectId("5c414a6a0847e00385143003"), "date" : "2019-01-18 09", "data

  • Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例

    本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pyodbc import os import csv import pymongo from pymongo import ASCENDING, DESCENDING from pymongo import MongoClient import binascii '''连接mongoDB数据库''' clie

  • mongodb使用c#驱动数据插入demo

    Mongodb提供了多种开发语言的驱动,java,python,c++,c# 等,这里选用c#驱动作为测试: 首先上mongo官网下载驱动.Ps:官方网站经常连接不顺利. 还不如直接在vs的nuget管理包中搜索mongoDB.driver. 需要引入的命名空间: using MongoDB.Bson; using MongoDB.Driver; Driver是驱动核心,Bson是和数据格式相关的: 定义一个mongo客户端,一个mongodb,一个数据集合: protected staticI

  • mongodb的写操作

    使用插入数据命令: >insert 需要注意的是,如果插入一文件(现在理解,nosql 类型的db数据不能说是记录了,它是已文件作为单位,而传统型的关系型数据库,我们说是插入一条记录),如果没有带人_id,那么会自动生成一个唯一的id,这个id好比关系型数据库里的主键一样. 如果是自己指定id,那么必须id是唯一的,这点关系型和nosql型都必须要求的: 数据字段的名字不能包含$ 和. 在敲了一阵发现,擦,我要是再shell里面去编写复杂的插入语句,就shell的这种一行一句,不搞死我去啊.我想

随机推荐