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

Mongodb - трябва _id да бъде глобално уникален при шардинг

Освен ако не ги замените ръчно, автоматично генерираните _id са UUID, които според документацията , се състои от "4-байтово времево клеймо (секунди от епохата), 3-байтов идентификатор на машина, 2-байтов идентификатор на процес и 3-байтов брояч".

Както можете да видите, уникален машинен идентификатор е част от UUID. Това гарантира, че две машини в шарда никога не създават един и същ UUID независимо (освен ако нямат един и същ идентификатор на машината - вероятността за това е 1:16777215 и когато се случи, може лесно да се провери). Единствената ситуация, при която теоретично бихте могли да имате дублиран UUID, е когато един процес създаде повече от 2^24 (над 16 милиона) UUID за една секунда.

tl;dr: Не е нужно да се притеснявате за дублиращи се UUID - те са, както се казва в документацията, "проектирани да имат сравнително висока вероятност да бъдат уникални, когато бъдат разпределени".




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Използвайте LIKE/regex с променлива в mongoid

  2. Създайте mongo връзка и я оживете за изпълнение на цял тестов пакет в Ready!API

  3. Обратно поле за масив в MongoDB

  4. Какво е новото в MongoDB 4.2

  5. MongoDB актуализира документ, когато вече съществува с ReactiveMongo