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

Най-добри практики за актуализиране на асинхронно дублирани данни в mongodb

По принцип имате 3 възможности:

  1. Просто запазете userId и след това вземете потребителя отделно. По този начин винаги получавате оптимални резултати по отношение на свежи данни. Но разбира се е по-бавно. Това в общи линии прави една релационна база данни. SQL DB просто ще погледне външния ключ и ще извлече данните по id.

  2. Живейте с остарели данни. Съхранявайте дубликат на потребителското име в коментарите. Понякога това е желано поведение, защото по този начин можете да представите данните точно както са били, когато са били съхранени. Това означава:Ако Джон създаде коментар и по-късно потребителското му име се актуализира на Пол, вие все още можете да видите, че е създаден като Джон. (Това е особено полезно за т.е. фактури, когато посочите лице там и адресът се промени, тогава не искате да актуализирате адреса на стара фактура)

  3. Актуализирайте всичко, което съдържа потребителско име, когато потребителското име се актуализира. Това също не е лошо, защото потребителското име обикновено никога не трябва да се променя. Така че четенето винаги ще бъде бързо, защото името се съхранява в коментара. И ако името се промени, трябва да актуализирате всичко, където участва потребителят. Разбира се, това е бавна задача, но тъй като не трябва да се случва всяка минута, е поносимо.

    3.1 Можете да оптимизирате нещата:ако потребителското име се промени, това се съхранява някъде и се прилага в полунощ. По този начин можете да съберете няколко промени в името и да актуализирате всичко едновременно.

Както можете да видите:NoSQL е въпрос на избор . Можете да правите нещата, които отговарят най-добре на вашите данни. Разбира се, винаги има компромис:по-бавно/по-бързо, повече/по-малко код за писане, по-лесно/по-трудно за поддръжка.

Обобщено е:

  1. Бърз запис, последователни данни, бавно четене
  2. Бързо писане, непоследователни данни, бързо четене
  3. Бърз запис, бързо четене, данните стават последователни след процеса на актуализиране, който може да отнеме известно време. И процесът на актуализиране, разбира се, е бавен.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Производителност на заявки за MongoDB за над 5 милиона записа

  2. $fitler вложен масив с помощта на $lte $gte

  3. Обединете колекция Mongodb и Python Dict

  4. Как да заредите първоначални данни в MongoDB?

  5. MongoDB $allElementsTrue