Mongodb索引的优化?

不清楚索引村不存在优化的情况。对于索引理解没有深入。顺便帮忙讲解一下吧!

1,每条数据都有地理信息。(省,市),那么我建立了索引:

db.v.createIndex({city:1}
db.v.createIndex({area:1}

我的疑惑是,这个建立的时候是没有条数据建立一个索引值还是通过索引的值来建立?

    比如存在这样的数据
    id name         city         area 
    1  zhangsan     beijing      beijing
    2  lisi         shanghai     shanghai
    3  zhaowu       beijing      beijing

   #每条数据建立 
    city->beijing->1
    city->shanghai -> 2
    city->beijing->3
    
    #还是根据索引值
    city->beijing--|-> 1
                   |-> 3
    city->shanghai->2
    
    

谢谢

阅读 2.9k
2 个回答

没有完全理解你的问题,大概理解是:

1、MongoDB的索引大部分都是 B Tree索引;除此之外,

1)hash index,主要用于hashed sharding
2)Geospatial index,例如2d、2dsphere,在MongoDB里面本质上B Tree实现的
3)Text index

2、B Tree是按照索引值排序保存的,并指向相应的Collection的存储的位置。

3、延伸一点,当前MongoDB的底层的WiredTiger使用了一种Log-Merged Structure Tree来优化写的性能。

关于MongoDB的索引都可以多了解上面的内容。供参考。

Love MongoDB! Have fun!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进