2013-06-02 15 views
5

MongoDB 2.4 Sorum şu, işte ben herkesin etrafında bahsediyor bakın yeni bir özellik vardır:Hashed Index nedir? (Bunlar basit ise üzgün)

  • mu MongoDB kırığından anahtarı belirtmeden onları yönetmek? veya yönetici anahtarı seçer mi?
  • Hostspot sorununda ya da disk IO'da kalma riski var mıdır, çünkü Hash ve hash rastgele bir şeydir?
+1

Hala bir anahtar belirtmek gerekir, dahili olarak, hashs (MongoDB gördüğü) tuşuna. Hash indeksi, hot spot problemi özel olarak durdurmak için tasarlandı, nasıl oluşturulduğu ile ilgili bir problem göremedim. – Sammaye

+0

, bu yüzden neden ek bir anahtar MD5 (anahtar) kullanmıyorsunuz, yoksa sadece alan kaybı mı? ve okuduğum gibi, bu disk okumaları için acı veriyor, çünkü rastgele ve hafızada tutulmuyor mu? –

+1

Mükemmel bir shard anahtarını bulmaktan daha ağır olduğu için, daha iyi bir shard anahtarınız olmadığında, ObjectId – Sammaye

cevap

4

fikri (o monoton artan ediyor ve son girdileri üzerinde bir hotspot yaratacak, örneğin) Eğer kötü yazma dağılımını vermek olur kırığından anahtarı olarak kullanmak istediğiniz bir sahada karma endeksi yaratabilmenizdir .

Hashed dizininde saklanan karma, 128 bit md5 karma değerinin 64 bitidir. Amaç, karma mekanizma hakkında bilgi sahibi olmak gerekmeden, anahtarın karma değerinin sivriltilmesine izin vermektir.

Bu burada daha fazla bilgi bulabilirsiniz: http://docs.mongodb.org/manual/core/sharded-cluster-internals/#sharding-hashed-shard-key-internals

+0

Teşekkür ederim, buna ne dersin? ”Dokümanların çeşitliliğinin daha fazla olduğu iş yükleri için (yani, tüm kullanıcılardan yeni belgeler bulmak), diğer anahtar sözcük seçenekleri daha uygun olabilir." http://blog.mongodb.org/post/47633823714/new-hash-based-sharding-feature-in-mongodb-2-4 –

+2

Yapacağınız sorguların türüne bağlıdır. Bunların büyük bir kısmı tek bir shardkey değerine (id) göre ise, o zaman, ya da bazı veya yeterli başka bir (endeksli) özniteliği vardır. Sorunlu durum, her zaman "bu kimliğe ait bu kimlikteki kayıtlar" a göre sorgulamanızdır. Bu, karma dizini kullanamaz. –

+0

ve mongodb onları otomatik olarak indeksler eklediğinden '_id' ne dersiniz? –