MongoDB-创建索引

来源:互联网 发布:centos 无法打开https 编辑:程序博客网 时间:2024/05/20 17:28

MongoDB提供了多样性的索引支持,索引信息被保存system.indexes中,且默认总是为_id创建索引,它的索引使用基本和MySQL等关系型数据库一样。

举个栗子,给age添加索引(1为升序,-1为降序)

db.test.ensureIndex({"age":1})

_id是创建表的时候自动创建的索引,此索引是不能够删除的。当系统已经有大量数据时,创建索引是个非常耗时的活,我们可以在后台中执行,只需指定background等于true即可。

db.test.ensureIndex({"age":1},{"background":true})

索引可以是任何类型的字段

db.test.insert({"info":{"province":"广东","city":"深圳"}})// 为info创建索引db.test.ensureIndex({"info":1})// 下面这个查询将会用到刚刚创建的索引db.test.find({"info":{"province":"广东","city":"深圳"}})// 下面这个查询将不会用到刚刚创建爱你的索引,因为与创建索引时键的顺序不一样db.test.find({"info":{"city":"深圳","province":"广东"}})

MongoDB内存报错

Sort operation used more than the maximum 33554432 bytes of RAM。33554432 bytes算下来正好是32Mb,而Mongodb的sort操作是把数据拿到内存中再进行排序的,为了节约内存,默认给sort操作限制了最大内存为32Mb,当数据量越来越大直到超过32Mb的时候就自然抛出异常了!解决方案有两个思路,一个是既然内存不够用那就修改默认配置多分配点内存空间;一个是像错误提示里面说的那样创建索引。

原创粉丝点击