搜尋

首頁  >  問答  >  主體

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
    
    

謝謝

伊谢尔伦伊谢尔伦2746 天前681

全部回覆(2)我來回復

  • 为情所困

    为情所困2017-05-17 10:03:49

    沒有完全理解你的問題,大概理解是:

    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!

    回覆
    0
  • 滿天的星座

    滿天的星座2017-05-17 10:03:49

    不太懂您的問題,不過我這裡有一些關於使用MongoDB建立索引時的幾點建議,你可以參考:
    http://forum.foxera.com/mongo...

    回覆
    0
  • 取消回覆