मैं एएसपी.नेट एमवीसी + एनएचबीरनेट + पोस्ट्रेस स्टैक का उपयोग कर वेब एप्लिकेशन लिख रहा हूं। मुझे आश्चर्य है कि अपलोड की गई छवियों को डेटाबेस में बाइनरी ब्लॉब्स या फाइल सिस्टम पर संग्रहीत किया जाना चाहिए (और केवल डीबी में संदर्भ)। डीबी स्टोरेज का एक लाभ मैं सोच सकता हूं कि फाइल सिस्टम कॉपी टूल्स को वापस किए बिना सभी डेटा का आसान बैकअप/रिकवरी है। दूसरी तरफ मुझे संदेह है कि फाइल सिस्टम एक्सेस तेज हो सकता है (लेकिन क्या यह विशेष रूप से कई समवर्ती अनुरोधों से निपटने पर है?) आपके सुझाव क्या हैं?एएसपी.नेट एमवीसी छवि अपलोड स्टोर स्थान (डीबी बनाम फाइल सिस्टम)
उत्तर
मैं दोनों करता हूं- सुनिश्चित करें कि छवियों को डेटाबेस में संग्रहीत किया जाता है ताकि सभी डेटा आसान बैकअप के लिए केंद्रीकृत हो जाएं, लेकिन डेटा को बाहरी रूप से भी कैश करें, ताकि बड़ी छवियों के लिए दोहराए गए अनुरोध बफर कैश को नहीं फेंक दें डेटाबेस। ठीक से हो गया, आप नए फ्रंटएंड वेब सर्वर ला सकते हैं जो शुरू होने के बाद डेटाबेस से अपने स्थानीय छवि कैश को पारदर्शी रूप से पॉप्युलेट कर देगा।
छवियों के लिए केंद्रीकृत स्टोर रखने के लिए यह भी उपयोगी है कि आप कई वेब सर्वर वाले सिस्टम में छवियों के लिए अच्छा अंतिम संशोधित और ईटीएजी HTTP प्रतिक्रिया शीर्षलेख भेजते हैं, क्योंकि हेडर को डेटाबेस सामग्री से लिया जा सकता है स्थानीय कैश वस्तुओं से।
पोस्टग्रेएसक्यूएल के लिए केवल एक कार्यान्वयन नोट विशेष रूप से: आप अपने छवि डेटा वाले "स्टोरेज मोड" को "बाहरी" में सेट कर सकते हैं: यह पोस्टग्रेएसक्यूएल को छवि डेटा को संपीड़ित करने की कोशिश कर देगा (zlib का उपयोग करके, जो नहीं है किसी भी लाभ प्रदान करने की संभावना है) और यदि आप छवि मेटाडेटा से पूछताछ कर रहे हैं तो बेहतर प्रदर्शन प्रदान करते हुए, इसे एक सहायक टोस्ट तालिका में छवि डेटा स्टोर कर देगा। ALTER TABLE आदेश के "सेट भंडारण" खंड, उदा .:
ALTER TABLE media.image ALTER COLUMN content SET STORAGE EXTERNAL
यह निर्भर करता है। क्या आप सीधे किसी छवि से लिंक करने में सक्षम होने का मानते हैं, या क्या आप हमेशा डीबी को कॉल करने के लिए सर्वर साइड संसाधनों का उपयोग करना चाहते हैं, और फिर छवि के लिए बाइनरी डेटा लिखना चाहते हैं?
देखें हम बैकअप के लिए डेटाबेस में मूल के भंडारण का उपयोग, लेकिन नीचे छवियों कि वेबसर्वर पर फाइल सिस्टम पर कैश किया गया है बढ़ाया से जेनरेट किए।
हालांकि, हम संभवतः डेटाबेस में किसी भी राउंडट्रिप्स से बचने की कोशिश करते हैं, क्योंकि यह भारी लोड उत्पन्न करता है क्योंकि एक पृष्ठ आमतौर पर प्रति पेज-व्यू के कई छवि-अनुरोधों को आमंत्रित करता है।
डेटाबेस में ब्लॉब्स संग्रहीत करने पर एक नोट, मेरा सुझाव है कि आप एक समर्पित तालिका में वास्तविक ब्लॉब-कॉलम को अपनी इकाई/इकाइयों में एक-से-एक मैपिंग के साथ प्रस्तुत करते हैं। यह बैकअप को कम करेगा, साथ ही साथ आपकी टेबलों में बदलाव भी होगा। जब कोई टेबल बड़ा हो जाता है, तो कोई भी परिवर्तन बैकअप के दौरान भी "हमेशा" पूरा करने और लॉक करने में बड़ी समस्या होगी।
यदि आपके पास छवियों (बाइनरी डेटा को छोड़कर) के बारे में सारी जानकारी है, तो उस डेटा को तब तक प्रभावित नहीं किया जाएगा जब तक आपको बाइनरी डेटा की आवश्यकता न हो (जिसे आपको शायद ही कभी फ़ाइल सिस्टम में कैश किया जाएगा)।
बस मेरे दो सेंट।
विभिन्न डेटाबेस में ब्लॉब्स को संग्रहीत करने के लिए अलग-अलग दृष्टिकोण होते हैं: postgresql स्वचालित रूप से अलग "टोस्ट" तालिका में बड़े बाइट मानों को स्टोर करेगा, इसलिए इसे स्पष्ट रूप से करने की आवश्यकता नहीं है। – araqnid
वास्तव में, छवि डेटा संग्रहीत करने के लिए शायद "तालिका बदलना ... कॉलम को बदलने ... बाहरी भंडारण बाहरी" का उपयोग करने के लिए सलाह दी जाती है ताकि हर समय बाहर भंडारण को मजबूर किया जा सके और संपीड़न को अक्षम किया जा सके। – araqnid
एचएम, यह अजीब है क्योंकि हम पोस्टग्रेज़ का उपयोग करते हैं और टेबल को बदलने और इसे बैक अप करते समय मुझे टेबल-लॉकिंग में समस्या है। – jishi
- 1. माउंट NoSQL डीबी फाइल सिस्टम
- 2. फाइल सिस्टम
- 3. रिपोजिटरी बनाम डेटाबेस बनाम फाइल सिस्टम
- 4. एएसपी.नेट एमवीसी 4 वेब सुरक्षा - डीबी स्टोरेज स्थान
- 5. एएसपी.नेट एमवीसी अपलोड फ़ाइल समय
- 6. एएसपी.नेट एमवीसी बनाम एएसपी.नेट 4.0
- 7. एएसपी.नेट एमवीपी बनाम एएसपी.नेट एमवीसी
- 8. एएसपी.नेट एमवीसी बनाम स्प्रिंग एमवीसी
- 9. बड़ी मात्रा में डेटा संग्रहीत करना: डीबी या फाइल सिस्टम?
- 10. एएसपी.नेट एमवीसी 3: - स्थानीयकरण स्टोर
- 11. स्थानीय फाइल सिस्टम पर ग्राडल स्टोर
- 12. "फाइल एक्सटेंशन" के साथ एएसपी.नेट एमवीसी रूट्स
- 13. एएसपी.नेट एमवीसी बनाम Zeitgeist
- 14. एएसपी.नेट एमवीसी बनाम एक्सएसएल
- 15. Grails और Tomcat: फाइल सिस्टम में अपलोड की गई फाइलों को कहां स्टोर करना है?
- 16. फाइल सिस्टम
- 17. फ़ाइल एपीआई फ़ाइल अपलोड - एएसपी.नेट एमवीसी
- 18. एएसपी.नेट एमवीसी सत्र बनाम ग्लोबल बनाम कैश
- 19. एएसपी.नेट एमवीसी 2 के साथ फाइल अपलोड करने का सबसे अच्छा तरीका क्या है?
- 20. एएसपी.नेट एमवीसी एक फाइल कैसे लौटाती है?
- 21. एएसपी.नेट एमवीसी मॉडल बनाम व्यूमोडेल
- 22. पायथन डीजेंगो बनाम एएसपी.नेट एमवीसी
- 23. फाइल सिस्टम
- 24. एएसपी.नेट एमवीसी
- 25. सी #: फाइल सिस्टम सिस्टम
- 26. मानक .NET सीएमएस सिस्टम एएसपी.नेट एमवीसी
- 27. एएसपी.नेट एमवीसी
- 28. फाइल सिस्टम
- 29. फाइल सिस्टम
- 30. डेटाबेस में django स्टोर छवि
http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay – Cesar
का संभावित डुप्लिकेट एक विशेष सीडीएन सर्वर पर? – Paco