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

Трябва ли да използваме dbref или вграден документ в интензивно за четене приложение

DBref не е нещо като външен ключ в традиционните релационни системи. Това е само конвенция, която лесно казва на водача (който е в състояние) да зареди автоматично тези посочени документи. Моля, вижте DBRef за повече информация по този въпрос.

В зависимост от използвания драйвер, може да сте в състояние да заредите тези препратки автоматично само когато имате нужда от тях (мързелив), така че производителността трябва да бъде наистина малка. Но режийните разходи за съхранение са малко по-високи от обикновен препратен _id на друг документ. По принцип бих казал, че трябва да използвате тези DBrefs само ако свързаният документ може да бъде от променлив тип. Ако е статичен, значи сте заседнали с _id-референции и може би със собствена функционалност за отложено зареждане, така че да не се повтаряте.

Не се повтаряйте (или дублирането на данни в базата данни) се прилага и във вашия контекст, както MongoDB препоръчва (така че и аз бих го направил), е само свържете вашите документи . В противен случай бихте имали по-голямо използване на хранилището и донякъде продължителни актуализации, за да актуализирате само една логическа единица (дублирана физически много често).

С по-горе споменатия персонализиран мързелив зареждащ механизъм можете да добавите известно кеширане, така че не всяко търсене действително да води до търсене в mongodb. Най-вероятно тогава ще трябва да се погрижите за съгласуваността на вашите данни между кеша и базата данни.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb count срещу findone

  2. Използване на SqlBulkCopy с MongoDB

  3. AWS DocumentDB поддържа ли обединяване на 3+ колекции в една заявка?

  4. Преобразуване на BSON тип ObjectId в JSON (съхранение в Mongodb) -Java

  5. Сортиране на резултатите от заявката по реда на елементите в предоставения масив с условия в Mongoose