दिलचस्प पोस्ट
बैश स्क्रिप्ट से ओएस खोजें जावास्क्रिप्ट कब और कहाँ चला जाता है, PHP के बारे में कैसे? क्या मैं दो जोड़ सकता हूँ? आदेश दिया गया अजगर के पुराने संस्करणों के लिए आदेश डबल विस्मयादिबोधक अंक? "एकाधिक लक्ष्य प्रतिमान" मेकफाइल त्रुटि PHP चेक फ़ाइल एक्सटेंशन Android डिवाइस पर HelloWorld.apk स्थापित करने में विफल (रिक्त) त्रुटि ViewPager.setOffscreenPageLimit (0) अपेक्षा के अनुरूप काम नहीं करता है OpenCV में findContours () में पदानुक्रम का उपयोग करना? Async कॉलबैक में पैरामीटर में अपेक्षित रूप से काम नहीं करता है जावा ऑब्जेक्ट हैडर में क्या है प्रति प्रक्रिया सीपीयू और मेमोरी उपयोग ट्रैकिंग स्प्रिंग बूट एंड स्प्रिंग सिक्योरिटी एप्लीकेशन में स्थिर वेब संसाधनों की सेवा MVC- जैसे पृष्ठ पर सुंदर यूआरएल पर आधारित वर्गों को लोड कैसे करें? PHP में दो निर्देशांक के बीच की दूरी को मापना

MongoDB BSON दस्तावेज़ आकार सीमा को समझना

मोंगोडीबी से निश्चित गाइड:

4MB से बड़ा दस्तावेज़ (जब बीएसओएन में परिवर्तित किया जाता है) डाटाबेस में सहेजा नहीं जा सकता है। यह कुछ हद तक मनमाने सीमा है (और भविष्य में उठाया जा सकता है); यह ज्यादातर खराब स्कीमा डिजाइन को रोकने और लगातार प्रदर्शन सुनिश्चित करने के लिए है

मैं यह सीमा समझ नहीं पाता, क्या इसका मतलब यह है कि एक ब्लॉग पोस्ट जिसमें बहुत सारे टिप्पणियों के साथ एक दस्तावेज 4 एमबी से बड़ा होता है, एक दस्तावेज़ के रूप में संग्रहीत नहीं किया जा सकता है?

क्या यह नेस्टेड दस्तावेजों को भी गिनती करता है?

यदि मैं एक दस्तावेज़ चाहता हूं जो एक मूल्य के परिवर्तनों का लेखा-जोखा करता है तो क्या होगा (यह अंततः 4 एमबी सीमा से अधिक हो सकती है।)

उम्मीद है कि कोई व्यक्ति इसे सही ढंग से बताता है

मैंने अभी मोंगोडीबी (पहले नोड के डेटाबेस के बारे में सीख रहा हूँ) के बारे में पढ़ना शुरू कर दिया है।

धन्यवाद।

वेब के समाधान से एकत्रित समाधान "MongoDB BSON दस्तावेज़ आकार सीमा को समझना"

सबसे पहले, यह वास्तव में अगले संस्करण में 8MB या 16MB 8MB तक उठाया जा रहा है … लेकिन मैं इसे परिप्रेक्ष्य में डाल रहा हूं, एलियट से 10 जीन (जो मोंगोडीबी विकसित हुआ) इसे सबसे अच्छा कहते हैं:

संपादित करें: आकार को आधिकारिक रूप से 'उठाया गया' 16MB तक कर दिया गया है

इसलिए, आपके ब्लॉग उदाहरण पर, 4 एमबी वास्तव में एक बहुत कुछ है .. उदाहरण के लिए, "दुनिया के युद्ध" का पूरा असंपीड़ित पाठ केवल 364k (html) है: http://www.gutenberg.org/etext/36

यदि आपके ब्लॉग पोस्ट में वह कई टिप्पणियां हैं, तो मैं इसे पढ़ने के लिए नहीं जा रहा हूं 🙂

ट्रैकबैक के लिए, यदि आप उन्हें 1 एमबी समर्पित करते हैं, तो आप आसानी से 10k से अधिक हो सकते हैं (शायद 20k के करीब)

तो वास्तव में विचित्र स्थितियों के अलावा, यह महान काम करेंगे और अपवाद के मामले या स्पैम में, मुझे नहीं लगता कि आप वैसे भी 20 एमबी ऑब्जेक्ट चाहते हैं। मुझे लगता है कि 15k के रूप में ट्रैकबैक को कैप करना या ऐसा बहुत अधिक मायने रखता है, चाहे इसके लिए कोई भी प्रदर्शन न हो। या कम से कम विशेष आवरण अगर ऐसा कभी होता है।

-Eliot

मुझे लगता है कि आप सीमा तक पहुंचने के लिए बहुत कठिन दबाएंगे … और समय के साथ, यदि आप अपग्रेड करते हैं … आपको कम और कम चिंता करने की आवश्यकता होगी

सीमा का मुख्य बिंदु यह है कि आप अपने सर्वर पर सभी रैम का उपयोग न करें (जैसा कि आप दस्तावेज के सभी MB एस को लोड करते MB राम में पूछते हैं।)

इसलिए सीमा सामान्य प्रणाली पर कुछ सामान्य उपयोग योग्य रैम की है … जो वर्ष पर वर्ष बढ़ते रहेंगे।

MongoDB में संग्रहित फाइलों पर ध्यान दें

यदि आपको 16MB से अधिक दस्तावेज़ों (या फाइलें) को स्टोर करने की आवश्यकता है, तो आप ग्रिडफ़्स एपीआई का उपयोग कर सकते हैं जो स्वचालित रूप से सेगमेंट में डेटा को तोड़ देगा और उन्हें आपको वापस स्ट्रीम कर देगा (इस तरह से आकार सीमा / रैम के साथ समस्या से बचने।)

किसी एकल दस्तावेज़ में एक फ़ाइल को संग्रहीत करने के बजाय, ग्रिडफ़ेस फ़ाइल को भागों, या खंड में विभाजित करता है, और एक अलग दस्तावेज़ के रूप में प्रत्येक खंड को स्टोर करता है।

ग्रिडफ़िक्स फ़ाइलों को संग्रहीत करने के लिए दो संग्रह का उपयोग करता है। एक संकलन फ़ाइल खंडों को संग्रहीत करता है, और अन्य स्टोर मेटाडेटा फ़ाइल करता है।

डेटाबेस में छवियों, फाइलों, वीडियो आदि को संग्रहीत करने के लिए आप इस पद्धति का उपयोग कर सकते हैं जितना कि आप SQL डेटाबेस में हो सकते हैं। मैंने इसका इस्तेमाल बहु गीगाबाइट वीडियो फ़ाइलों को भी स्टोर करने के लिए किया है।

समुदाय में कई लोग प्रदर्शन के बारे में चेतावनियों के साथ कोई सीमा नहीं पसंद करेंगे, एक अच्छी तर्कसंगत तर्क के लिए यह टिप्पणी देखें: https://jira.mongodb.org/browse/SERVER-431?focusedCommentId=22283&page=com.atlassian.jira.plugin system.issuetabpanels: टिप्पणी-tabpanel # टिप्पणी-22,283

मेरा लेना, प्रमुख डेवलपर्स इस मुद्दे के बारे में हठ हैं क्योंकि उन्होंने फैसला किया कि यह एक महत्वपूर्ण "फीचर" वे इसे कभी भी जल्द ही बदलने नहीं जा रहे हैं क्योंकि उनकी भावनाओं को चोट पहुंचाई जा रही है कि किसी ने इसे पूछताछ किया। व्यक्तित्व और राजनीति का एक और उदाहरण ओपन सोर्स समुदायों में एक उत्पाद से उतरना है लेकिन यह वास्तव में एक गंभीर मुद्दा नहीं है।

यहां उन लोगों के लिए स्पष्टीकरण का उत्तर पोस्ट करने के लिए जो Google द्वारा यहां निर्देशित किए गए हैं

दस्तावेज के आकार में सबड्यूमेंट्स, नेस्टेड ऑब्जेक्ट इत्यादि सहित दस्तावेज़ में सब कुछ शामिल है।

तो का एक दस्तावेज:

 { _id:{}, na: [1,2,3], naa: [ {w:1,v:2,b:[1,2,3]}, {w:5,b:2,h:[{d:5,g:7},{}]} ] } 

अधिकतम आकार 16 मिमी है

Sbudocuments और नेस्टेड ऑब्जेक्ट्स सभी दस्तावेज़ के आकार की ओर गिने जाते हैं।

बीएसओएन दस्तावेजों के लिए नेस्टेड गहराई: मोंगोडीबी बीएसओएन दस्तावेजों के लिए घोंसले के शिकार के 100 से अधिक स्तरों का समर्थन करता है।

अधिक जानकारी vist

मैंने अभी तक उस सीमा के साथ कोई समस्या नहीं देखी है, जिसमें दस्तावेज़ के अंदर बड़ी फ़ाइलों को संग्रहीत नहीं किया गया था पहले से ही कई तरह के डेटाबेस हैं जो बड़े फाइलों को भंडारण / पुनः प्राप्त करने में बहुत कुशल हैं; उन्हें ऑपरेटिंग सिस्टम कहा जाता है ऑपरेटिंग सिस्टम पर एक परत के रूप में डेटाबेस मौजूद है यदि आप निष्पादन के कारणों के लिए एक NoSQL समाधान का उपयोग कर रहे हैं, तो आप अपने अनुप्रयोग और आपके डेटा के बीच डीबी परत को डालकर अपने डेटा की एक्सेस के लिए अतिरिक्त संसाधन ओवरहेड क्यों जोड़ना चाहते हैं?

JSON एक पाठ प्रारूप है इसलिए, अगर आप अपने डेटा को JSON के माध्यम से एक्सेस कर रहे हैं, तो यह विशेष रूप से सच है यदि आपके पास बाइनरी फ़ाइलें हैं क्योंकि उन्हें यूयूएनोड, हेक्साडेसिमल, या बेस 64 में एन्कोड किया जाना है। रूपांतरण पथ ऐसा दिखेगा

बायनरी फ़ाइल <> JSON (एन्कोडेड) <> बीएसओएन (एन्कोडेड)

यह आपके दस्तावेज़ में डेटा फ़ाइल को पथ (यूआरएल) डालने और डाटा को द्विआधारी में रखने के लिए अधिक कुशल होगा।

अगर आप वास्तव में अपने डीबी में अज्ञात लंबाई की इन फाइलों को रखना चाहते हैं, तो आप संभवत: इन्हें ग्रिडफ़िक्स में डालकर बेहतर होगा और आपकी संगामिति को मारने की जोखिम नहीं उठाएंगे जब बड़ी फाइलें एक्सेस होती हैं।

शायद एक ब्लॉग पोस्ट को संचित करना -> एक गैर-रिलेशनल डेटाबेस में टिप्पणियां रिलेशनशिप वास्तव में सर्वश्रेष्ठ डिजाइन नहीं है।

आपको किसी भी तरह से ब्लॉग पोस्ट करने के लिए एक अलग संग्रह में टिप्पणियां भी संग्रहित करनी चाहिए।

[संपादित करें]

आगे की चर्चा के लिए नीचे टिप्पणी देखें