MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगो में प्राथमिक कुंजी/_आईडी के रूप में स्लग का उपयोग करके प्रदर्शन नुकसान?

मेरी राय में, नहीं। अधिकांश परिदृश्यों के लिए प्रदर्शन अंतर नगण्य होगा (पेजिंग को छोड़कर ), लेकिन

  • सरोगेट प्राथमिक कुंजी की पुरानी चर्चा सामने आती है। एक "स्लग" एक बहुत ही स्वाभाविक कुंजी नहीं है। हां, यह अद्वितीय होना चाहिए, लेकिन जैसा कि आपने पहले ही बताया है, स्लग को बदलना असंभव नहीं होना चाहिए। यह अकेला मुझे परेशान करने से रोकेगा...
  • एक मोनोटोनिक _id key आपको कई सिरदर्दों से बचा सकती है, सबसे महत्वपूर्ण बात यह है कि skip . के माध्यम से महंगे पेजिंग से बचें और take ($lt का उपयोग करें /$gt _id . पर इसके बजाय)।
  • मोंगोडब में अधिकतम अनुक्रमणिका लंबाई की एक सीमा है कम से कम से 1024 बाइट्स। जबकि सुंदर नहीं, URL को बहुत लंबा . अगर किसी ने लंबे स्लग में प्रवेश किया है, तो वह नहीं मिलेगा क्योंकि इसे चुपचाप इंडेक्स से हटा दिया गया है।
  • एक सुसंगत इंटरफ़ेस होना एक अच्छा विचार है, अर्थात एक ही प्रकार के _id का उपयोग करना सभी पर, या कम से कम, आपकी अधिकांश वस्तुओं पर। मेरे कोड में, मेरे पास एक अपवाद है जहां मैं आईडी के रूप में एक विशेष हैश का उपयोग कर रहा हूं क्योंकि मूल्य नहीं बदल सकता है, संग्रह में अत्यधिक उच्च लेखन दर है और यह बड़ी है।
  • मान लें कि आप अपने प्रबंधन इंटरफ़ेस में लेख से लिंक करना चाहते हैं (सार्वजनिक साइट नहीं), आप किस लिंक का उपयोग करेंगे? आम तौर पर आईडी, लेकिन अब आईडी और स्लग बराबर हैं। अब एक साधारण बग (जैसे खाली स्लग की अनुमति देना) से उबरना मुश्किल होगा, क्योंकि उपयोगकर्ता अब प्रबंधन इंटरफ़ेस पर भी नहीं जा सकता।
  • आप चारसेट मुद्दों से निपटेंगे। मेरा सुझाव है कि लेख को देखने के लिए स्लग का उपयोग न करें, लेकिन स्लग के हैश

अनिवार्य रूप से, आप एक स्कीमा के साथ समाप्त होंगे जैसे

{ "_id" : ObjectId("a237b45..."), // PK
  "slug" : "mongodb-is-fun", // not indexed
  "hash" : "5af87c62da34" } // indexed, unique



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं अद्यतन में $set और $inc के साथ क्या गलत कर रहा हूँ?

  2. नोएसक्यूएल - मोंगोडीबी बनाम कॉच डीबी

  3. जावा ड्राइवर जावास्क्रिप्ट शेल के Object.bsonsize(doc) के बराबर है?

  4. Mongo में दस्तावेज़ों में औसत उप दस्तावेज़ फ़ील्ड

  5. MongoDB:एक ही दस्तावेज़ में एक सरणी को किसी अन्य सरणी में कॉपी करना