一分钟了解mongodb(转)
mongo的由来
截取自英文俚语humongous,意为”巨大的”,是否表明mongodb在设计之初就是为大数据量处理而生呢?
mongodb是个啥
mongodb是个可扩展、高性能、开源、面向文档(document-oriented)的数据库,由c++实现。
http://www.mongodb.org/ 官网首页最显著的位置用了”agile”和”scalable”这两个词来形容它:
(1)agile:轻快的,敏捷的;
(2)scalable:可扩展;
mongodb的特点
(1)面向文档的存储:类JSON文档作为存储,不固定表模式(schema-free);
(2)全文索引支持(full index support);
(3)多副本与高可用性(replication & availability);
(4)自动分片(auto-sharding);
(5)支持多种类型的查询;
(6)快速原地更新(fast in-place updates):大部分更新操作无需申请新的空间;
(7)map/reduce支持;
(8)gridfs:各种size大小的集群文件支持;
wikipedia对mongodb的特性描述
(1)面向文档,以一种类JSON的格式管理记录,且能支持丰富的查询,支持索引;
(2)跨平台,支持windows,linux,solaris,OS X等;
(3)查询结果支持游标操作;
(4)点对点查询(Ad hoc queries):
任何字段(field)都能被查询到,支持范围查询(range queries),正则表达式查询(regular expression),
用户自定义js函数查询,内嵌字段查询(nestad field);
(5)索引支持:
支持单key索引,复合索引,唯一索引,内嵌字段索引;
查询执行时,mongodb的查询优化器会尝试多种查询计划,并挑选最优的计划执行;
(6)集函数支持(aggregation function):即使在map/reduce上,也有类似SQL的group by支持;
(7)文件存储支持,实现了一套GridFS的协议,用来存储和检索文件;
(8)主从、副本的支持:
mongodb支持主从结构,主db能执行读操作与写操作,从db从主db拷贝数据,从db只能执行读操作;
(9)sharding:
mongodb用sharding技术来支持水平扩展,它与Google的BigTable扩展方式十分类似;
一些与mysql的相似点与不同
(1)一个服务可以支持多个数据库;
(2)一个数据库可以支持多个表,在mongodb中,以集合(collection)代替了表(table)的概念;
(3)mysql是关系型的数据库,即RDBMS,而mongodb是schema-free的,它更像一个键值存储系统(kv),但与kv不同的是,它又能像mysql的模式一样,能修改文档内的数据,并对内部数据进行索引;
mongodb文档以BSON格式存储,即Binary JSON,BSON是一种二进制交换格式,类似Google Protocol Buffer;
一分钟了解mongodb(转)的更多相关文章
- 10分钟完成 mongodb replSet 部署
开始: ------------------------------------------------------------------------------------------------ ...
- 【转载】一分钟了解两阶段提交2PC(运营MM也懂了)
上一期分享了"一分钟了解mongoDB"[回复"mongo"阅读],本期将分享分布式事务的一种实现方式2PC. 一.概念 二阶段提交2PC(Two phase ...
- 30分钟让你了解MongoDB基本操作
今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...
- 30分钟让你了解MongoDB基本操作(转)
今天记录下MongoDB的基本操作,这只是最基本的,所以是应该掌握的. 数据库 数据库是一个物理容器集合.每个数据库都有自己的一套文件系统上的文件.一个单一的MongoDB服务器通常有多个数据库. 集 ...
- 十分钟搞定mongodb副本集
mongodb副本集配置 最近项目中用到了mongodb,由于是用mongodb来记录一些程序的日志信息和日常的统计,为了增加应用的可靠性,一直在找mongodb集群的一些资料,下面是对最近做的一个小 ...
- 【MongoDb入门】15分钟让你敢说自己会用MongoDB了
一.MongDB是什么呢,我该如何下手呢? MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 如果小伙伴你的机器上还没有安装Mon ...
- 5分钟掌握智联招聘网站爬取并保存到MongoDB数据库
前言 本次主题分两篇文章来介绍: 一.数据采集 二.数据分析 第一篇先来介绍数据采集,即用python爬取网站数据. 1 运行环境和python库 先说下运行环境: python3.5 windows ...
- mongoDB系列之(一):10分钟玩转mongoDB
1. mongoDB是什麽 mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式. 存储在集合中的文档,被存储为键-值对的形式.键用于唯一标识一个文档,为 ...
- MongoDB数据库 5分钟快速上手
安装 本次安装使用docker镜像,安装无障碍,一行命令即可解决 # 安装镜像并启动 可以自行修改命令中的参数 ## 账户 tanoak 密码 123123 ## -p 27018:27017 映射端 ...
随机推荐
- How to Pronounce Numbers 11 – 19
How to Pronounce Numbers 11 – 19 Share Tweet Share Tagged With: Numbers Numbers are something you’ll ...
- js对象和jquery对象互相转换
javascript对象转成jquery对象 jquery对象转成javascript对象
- 吴裕雄 04-mysql创建数据库
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'admin'; CREATE DATABASE 数据库名 ...
- linux下的arm汇编程序
1.gnu 的编译环境搭建 解压编译工具,加入环境变量PATH 2.编译相关命令的使用 编译命令 arm-linux-gcc -g -c -o led.o main.o led.c main.c / ...
- linux服务器中Jenkins集成git、Gradle持续构建Springboot项目
Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...
- JS----文档对象模型
DOM: document object model 文档对象模型提供了一套可以访问和修改HTML文档内容的方法 访问:获取 修改:设置 1 JS要去操作HTML元素,必须要先用JS找到他,转换为JS ...
- php json中文被转义
php 5.4 json_encode($str, JSON_UNESCAPED_UNICODE); 5.4版本以下 方法一function encode_json($str){ $code = js ...
- GPS卫星定位防盗系统机芯
GPS卫星定位防盗系统机芯,一般安装在驾驶室的操作台内,包括GPS模块,安装时需要先把车门打开,并把两边的车门拆卸下来,才能拆卸驾驶仪表台,再按说明书安装GPS定位防盗机芯,同时置于4A/12V免维护 ...
- java spring bean的什么周期
http://www.cnblogs.com/TIMHY/p/7794973.html
- Python gevent
1\协程 import geventfrom gevent import monkeyimport requestsfrom bs4 import BeautifulSoupimport thread ...