2011年12月1日

在MongoDB中一起使用$or和sort()时,查询性能可能会很差

摘要: 首先看一下操作过程:mongos> db.find({ "user" : "jhon"}).sort({"name" : 1}).limit(100).explain() { "cursor" : "BtreeCursor user_1", "nscanned" : 10100, "nscannedObjects" : 10100, "n" : 100, "scanAndOrder" : true, " 阅读全文

posted @ 2011-12-01 14:51 xinghebuluo 阅读(20247) 评论(3) 推荐(0)

mongodb指南(翻译)(七) - developer zone - 数据库之命令(二)

摘要: compact命令v1.9+压缩命令会对一个集合进行压缩和除碎片。索引也会被重建和压缩。这会为数据库中其他集合释放空间。在概念上它和repairDatabase类似,但是它仅仅作用于一个集合而不是整个数据库。运行(mongo shell上面的示例):> db.runCommand( { compact : 'mycollectionname' } )OR> db.mycollection.runCommand( "compact" )这个命令直到压缩全部完成才会返回。你可以通过查看mongod记录文件或者在另一个shell实例中运行db.curr 阅读全文

posted @ 2011-12-01 14:29 xinghebuluo 阅读(951) 评论(0) 推荐(0)

2011年11月30日

mongodb指南(翻译)(六) - developer zone - 数据库之命令(一)

摘要: 每一个mongodb服务器可以支持多个数据库。出于安全和方便管理的考虑,每一个数据库都是独立的,并且每一个数据库的数据也是分开存储的。一个数据库由一个或多个集合组成,文档(对象)存储在集合中,一个可选的安全证书可以控制访问。命令简介mongo数据库有一个数据库命令的概念。数据库命令可以告诉数据库执行一些特殊的操作,或者请求当前操作的状态信息。一条命令是作为针对名为$cmd的特殊集合的查询发送给数据库的。数据库会把命令结果放到一个单独的文档中返回-使用findOne()查看一下你的驱动是否有这个功能。一般情况下命令的语法是:db.$cmd.findOne( { <commandname&g 阅读全文

posted @ 2011-11-30 15:20 xinghebuluo 阅读(1723) 评论(0) 推荐(0)

2011年11月29日

mongodb指南(翻译)(五) - developer zone - 连接

摘要: Mongodb是一个数据库服务器:它运行在前台或者后台,等待来自用户的连接。当你启动mongodb,你会看到类似于下面的内容:~/$ ./mongod## some logging output#Tue Mar 9 11:15:43 waiting for connections on port 27017Tue Mar 9 11:15:43 web admin interface listening on port 28017此时它会停止打印输出但是并没有冻结,它只是监听在端口27017等待连接。一旦你连接并开始发送命令,它会继续输出所作事情的log。你可以使用任何一个mongodb驱动或者 阅读全文

posted @ 2011-11-29 11:32 xinghebuluo 阅读(1276) 评论(0) 推荐(0)

2011年11月28日

mongodb指南(翻译)(四) - developer zone - 教程

摘要: 运行mongodb请参与快速启动指南来启动mongodb。连接到数据库首先使用数据库shell程序来操作数据库。(我们同样可以使用任何语言的驱动来做类似的操作。shell程序可以很方便的进行交互和管理。)这样启动mongodb JavaScript shell:view plain#'mongo'isshellbinary.exactlocationmightvarydependingon#installationmethodandplatform$bin/mongo默认情况下shell程序会连接到本地的数据库“test”。你将看到:view plainMongoDBshell 阅读全文

posted @ 2011-11-28 10:59 xinghebuluo 阅读(922) 评论(0) 推荐(0)

2011年11月26日

mongodb指南(翻译)(三) - developer zone - 快速启动MongoDB

摘要: 本章节在官方文档的位置为:Home-Quickstart在OS X快速启动安装mongodb最简单的安装mongodb的方法就是使用包管理器或者预编译好的二进制文件:包管理器如果你使用Homebrew包管理器,请运行:view plain$brewupdate$brewinstallmongodb如果你使用MacPorts,你可以这样安装:view plain$sudoportinstallmongodb整个安装过程会花费稍许时间。32位二进制文件注:推荐使用64位(如果你有64位操作系统)view plain$curlhttp://downloads.mongodb.org/osx/mong 阅读全文

posted @ 2011-11-26 14:47 xinghebuluo 阅读(818) 评论(0) 推荐(0)

2011年11月25日

mongodb指南(翻译)(二) - developer zone - 简介

摘要: 简介mongodb是一个面向集合,模式灵活的文档型数据库。所谓面向集合,是说数据被分组存储在被称作集合的数据集中。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式。所谓模式自由(schema-free),是说对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。 所谓的文档,是说存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储. 阅读全文

posted @ 2011-11-25 16:55 xinghebuluo 阅读(804) 评论(0) 推荐(0)

mongodb指南(翻译)(一) - 翻译前言

摘要: 云计算最近越来越热,各类云计算中心也是遍地开花,而mongodb是非关系数据库(nosql)中比较热门的技术之一,我也有幸在做这方面的工作,平时学习以mongodb官方文档为主(http://dl.mongodb.org/dl/docs/,该文档每天都会生成一个新版本),它里面包含了开发指南和管理指南两大部分的内容。碰到问题都是在mongodb官方论坛:http://groups.google.com/group/mongodb-user 获取帮助。 目前有一本中文书《mongodb权威指南》,里面的内容就是以mongodb官方文档为基础翻译而来,大家可以关注一下。由于mongodb现在的版本 阅读全文

posted @ 2011-11-25 15:39 xinghebuluo 阅读(990) 评论(2) 推荐(0)

2011年11月23日

[mongodb翻译]分片和故障转移

摘要: 一个配置恰当的mongodb 分片集群不会有单点失效。本章节描述了集群服务器中可能出现的故障,及相应的对策。 1. 某个mongos路由进程故障 每一个mongos会运行每一台应用服务器上面,该应用服务器只能通过这个mongos进程和集群进行通信。mongos进程不是固定不变的;相反,他们在启动时从配置服务器那里获取必要的配置信息。 这意味着任何一台应用服务器故障都不会影响到整个集群,其他的应用服务器可以照常提供服务。恢复也是很简单的,只需要重启一个新的应用服务器和mongos进程。 2. 一个shard内的某个mongod服务器故障 每一个shard由包含了N个服务器的复制组组成,如果任何. 阅读全文

posted @ 2011-11-23 13:39 xinghebuluo 阅读(1166) 评论(1) 推荐(0)

[mongodb翻译]分片的限制(sharding limit)

摘要: 安全2.0版本程序将会支持sharding状态下面的认证模式。与没有分片配置的区别2.0版本以前,分片必须运行在可信任的安全模式,没有明确的安全策略。在当前版本中,shard key一旦选定后就不能再更改了。所有的(不是操作多个)更新、更新插入和插入操作必须包含完整的shard key。这会对使用映射库有些影响,因为此时你无法控制更新操作。$where$where在sharding下面可以使用。但是不要在$where函数中引用数据库对象(db object)。db.evaldb.eval()不能在分片的集合上面使用。当然,你可以在未分片的集合上面使用db.eval().在分片环境可以使用map 阅读全文

posted @ 2011-11-23 09:22 xinghebuluo 阅读(1111) 评论(0) 推荐(0)

导航