डेटाबेस में इमेज/ब्लॉब्स को स्टोर करने के फायदे
- छवियों को संग्रहीत करना स्वचालित रूप से आपके लेनदेन का हिस्सा है
- फ़ाइल सिस्टम को साफ करने और डेटाबेस के साथ सिंक करने की कोई आवश्यकता नहीं है
- छवियों तक पहुंच उसी माध्यम से नियंत्रित होती है जिस तरह से शेष डेटा तक पहुंच होती है
- देखभाल करने के लिए केवल एक ही बैकअप
- डेटाबेस आमतौर पर संग्रहीत मिलियन (यदि अरबों नहीं) रिकॉर्ड के लिए बेहतर अनुकूल है। फाइल सिस्टम में आपको कई निर्देशिकाओं पर एक चतुर वितरण खोजना होगा। एक एकल निर्देशिका लाखों फाइलों को कुशलता से संभालने में सक्षम नहीं होगी।
- कुछ वर्कलोड के लिए डेटाबेस में छवियों को संग्रहीत करना वास्तव में तेज़ हो सकता है।
SQL सर्वर के लिए, Microsoft ने वास्तव में इसका परीक्षण किया है:
http://research.microsoft.com/apps/pubs/default.aspx?id=64525
अगर अन्य डेटाबेस भी इसी तरह से व्यवहार करते हैं तो मुझे आश्चर्य नहीं होगा।
नुकसान:
- आपके डेटाबेस और इस प्रकार आपके बैकअप को बहुत बड़ा बनाता है (इसे पुनर्स्थापित करने में लगने वाले समय के बारे में सोचें)।
- फ़ाइल सिस्टम आमतौर पर वृद्धिशील बैकअप के साथ बेहतर होते हैं (जब तक कि आपके पास Oracle का RMAN नहीं है)
- छवियों को अन्य अनुप्रयोगों (जैसे एक वेबसर्वर, छवि आकार बदलने वाले उपकरण, एफ़टीपी सर्वर) द्वारा एक्सेस नहीं किया जा सकता है
- वेब एप्लिकेशन में लोड संतुलन के लिए छवियों को सामग्री वितरण नेटवर्क में फैलाया नहीं जा सकता (एप्लिकेशन सर्वर से लोड लेने के लिए)
- आम धारणा है, कि डेटाबेस से पुनर्प्राप्ति धीमी होगी।
- ब्लॉब्स पुनर्प्राप्त करने वाले कुछ डेटाबेस के लिए वास्तव में डेटाबेस कैश की दक्षता कम हो सकती है (ओरेकल, एसक्यूएल सर्वर और पोस्टग्रेएसक्यूएल के लिए ऐसा नहीं है। हालांकि मुझे MySQL के लिए पता नहीं है)