四、MongoDB 索引

一、索引简介  MongoDB 的索引几乎与传统的关系型数据库索引一模一样。1.1、创建索引————————————————————————> db.ysq.ensureIndex({"username":1})————————————————————————  为了便于区分,将上面的索引称为单键索引,多键索引如下————————————————————————
摘要由CSDN通过智能技术生成
一、索引简介
  MongoDB 的索引几乎与传统的关系型数据库索引一模一样。
1.1、创建索引
————————————————————————
> db.ysq. ensureIndex({ "username": 1})
————————————————————————
  为了便于区分,将上面的索引称为单键索引多键索引如下
————————————————————————
> db.ysq.ensureIndex({ "date": 1, "username": 1})
————————————————————————
* 组值为1或-1的键,表示索引创建的方向。单键索引的方向无关紧要,多键索引的方向则会影响查询;
* MongoDB会安装索引的方向来组织文档;
* 如果索引包含N个键,则对于前几个键的查询都会有帮助;
* MongoDB的查询优化器会重排查询项的顺序,以便利用索引;
* 创建索引的缺点:每次插入、更新、删除时都会产生额外开销;
* 每个集合默认的最大索引个数为64个
 
建立索引时要考虑如下问题:
1、会做什么样的查询?其中哪些键需要索引?
2、每个键的索引方向是怎样的?
3、如何应对扩展?有没有种不同的键的排列可以使常用数据更多地保留在内存中?
 
后台创建索引:
————————————————————————
> db.ysq.ensureIndex({ "comments.date" : 1}, { "backgroup" :true})
————————————————————————
将不阻塞建立索引期间的所有请求。
 
索引内嵌文档中的键:
————————————————————————
> db.ysq.ensureIndex({ "comments.date": 1})
————————————————————————
注意:如果对没有索引的键调用sort,MongoDB需要将所有数据提取到内存来排序。因此,可以做无索引排序是有上限的。一旦集合大到不能再内存中排序,MongoDB就会报错。
 
1.2、 索引名称
默认:keyname1_dir1_keyname2_dir2_..._keynameN_dirN
指定自定义名称:
————————————————————————
db.ysq.ensureIndex({ "a" : 1, "b" :
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值