MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Fragment MongoDB według daty na jednej maszynie

Technicznie rzecz biorąc, nie musisz dzielić treści, a jedynie indeksować swoje pole. Tak, możesz utworzyć indeks w polu daty i będzie to przestrzegane, co możesz zobaczyć, odwiedzając plan zapytań db.collection.explain("executionStats")

Jednak wybór klucza fragmentu jest bardzo ważny. przy wyborze klucza shard należy wziąć pod uwagę kilka rzeczy

- Write scaling (high cardinality, Randomization)
- Query Isolation. (read)

wybór pola daty w rzeczywistości daje bardzo dużą kardynalność, jednak nie udaje się przeprowadzić randomizacji, w wyniku czego wszystkie dokumenty są przechowywane w jednym fragmencie, co ogranicza pojemność zapisu systemu. Z tego samego powodu odradza się używanie ObjectId jako klucza fragmentu.

http://docs.mongodb.org/manual/core/sharding- klucz-shard/ Treść z powyższego linku.."MongoDB generuje wartości ObjectId podczas tworzenia dokumentu, aby wygenerować unikalny identyfikator obiektu. Jednak najbardziej znaczące bity danych w tej wartości reprezentują znacznik czasu, co oznacza, że ​​zwiększają się w regularny i przewidywalny wzorzec.Chociaż ta wartość ma wysoką kardynalność, podczas używania tej, dowolnej daty lub innej monotonicznie rosnącej liczby jako klucza fragmentu, wszystkie operacje wstawiania będą przechowywać dane w jednym kawałku, a zatem w jednym fragmencie. w rezultacie pojemność zapisu tego fragmentu określi efektywną pojemność zapisu klastra”.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Otrzymuj powiadomienia o zmienionych dokumentach w mongodb

  2. MongoDB $setOnInsert

  3. zapytanie do pobrania wielu obiektów w tablicy w mongodb

  4. MongoDB i C# Find()

  5. Mongodb nie może znaleźć użytkownika [chroniony adres e-mail]