MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB фрагмент по дата на една машина

Технически не е необходимо да разделяте съдържанието си и просто трябва да индексирате полето си. Да, можете да създадете индекс в полето за дата и той ще бъде спазен, което можете да видите, като посетите плана за заявка db.collection.explain("executionStats")

Въпреки това, изборът на shard ключ е много важен. има няколко неща, които трябва да имате предвид, докато избирате shard key

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

избирането на полето за дата всъщност дава много висока кардиналност, но не успява да извърши рандомизирането и в резултат на това всички документи се съхраняват в единичен шард и следователно ограничава капацитета за запис на системата. По същата причина ObjectId не се препоръчва да се използва като разделен ключ.

http://docs.mongodb.org/manual/core/sharding- shard-key/ Съдържание от връзката по-горе.."MongoDB генерира стойности на ObjectId при създаване на документ, за да създаде уникален идентификатор за обекта. Най-значимите битове данни в тази стойност обаче представляват времеви печат, което означава, че те се увеличават в редовен и предсказуем модел. Въпреки че тази стойност има висока кардиналност, когато използвате тази, която и да е дата или друго монотонно нарастващо число като ключ на фрагмент, всички операции за вмъкване ще съхраняват данни в единична част и следователно в един фрагмент. в резултат на това капацитетът за запис на този шард ще определи ефективния капацитет за запис на клъстера."



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB агрегат с PHP - групиране по дата

  2. Как да върна новата стойност след актуализация във вграден масив?

  3. Срязване с проекция с C#

  4. Docker mongodb споделя том с mac os x

  5. Как да филтрирате масив в поддокумент с MongoDB