2009-07-31 8 views
7

हाल ही में, मैं और मेरे सहयोगियों, हम चर्चा कर रहे हैं कि एक विशाल स्टोरेज सिस्टम कैसे बनाया जाए जो अरबों चित्रों को संग्रहीत कर सके जो जल्दी से खोज और डाउनलोड कर सकें।क्या आपको लगता है कि अरबों छवियों को डेटाबेस में सहेजना अच्छा विचार है?

कुछ फ़िकर की तरह कुछ, लेकिन ऑनलाइन गैलरी के लिए नहीं। जिसका मतलब है, इनमें से अधिकतर चित्र कभी डाउनलोड नहीं होंगे।

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

आप इसके बारे में क्या सोचते हैं।

+11

इस पर पहले ही मौत पर चर्चा की गई है: http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay http://stackoverflow.com/questions/815626/to- डू-ऑन-टू-डू-स्टोर-इमेज-इन-ए-डेटाबेस http://stackoverflow.com/questions/805519/save-image-in-डेटा –

उत्तर

17

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

+8

दिलचस्प SQL सर्वर 2008 आपके लिए FILESTREAM के साथ ऐसा करता है स्टोरेज विकल्प- http://msdn.microsoft.com/en-us/library/cc949109.aspx – RichardOD

+0

हालांकि मैं इसके साथ सहमत हूं, शेयरपॉइंट स्टोर डेटाबेस में लगभग हर चीज नहीं है? यदि ऐसा है, तो मुझे लगता है कि SharePoint लोगों को नहीं लगता कि डेटाबेस में फ़ाइलों को संग्रहीत करना एक बुरा विचार है। मेरा मानना ​​है कि यह कुछ तरीकों से फायदेमंद है (पूछताछ की तरह), लेकिन संभवतः उन तरीकों से पूरी तरह से विरोध नहीं करते हैं जिनके बारे में आपने यहां उल्लेख किया है। – Dusty

+0

@ रिचर्डोड, मैंने पेपर पढ़ा और यह मुख्य रूप से संरचित सामग्री बनाम असंगठित सामग्री को संग्रहीत करने की समान चुनौतियों के बारे में बात करता है और एनटीएफएस की सिफारिश करता है। "FILESTREAM SQL Server 2008 रिलीज़ में एक नई सुविधा है। यह संरचित डेटा को डेटाबेस में संग्रहीत करने और एनटीएफएस फ़ाइल सिस्टम में सीधे संग्रहीत करने के लिए असंगठित (यानी, बीएलओबी) डेटा को संग्रहीत करने की अनुमति देता है। फिर आप BLOB तक पहुंच सकते हैं एसक्यूएल सर्वर के माध्यम से बीएलओबी डेटा तक पहुंचने के प्रदर्शन दंड का भुगतान करने के बजाय, उच्च-प्रदर्शन Win32® स्ट्रीमिंग API के माध्यम से डेटा। " –

0

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

2

तुम सच में छवियों के अरबों के बारे में बात कर रहे हैं, मैं उन्हें फाइल सिस्टम में स्टोर क्योंकि पुनर्प्राप्ति serializing और छवियों को डी-seralizing तुलना में तेजी से हो जाएगा होगा

+1

हाँ, मैं वास्तव में अरबों छवियों के बारे में बात कर रहा हूं। चमत्कार हर रोज होता है। – ablmf

1

जवाब ऊपर डेटाबेस है ग्रहण करने के लिए दिखाई देते हैं एक आरडीबीएमएस यदि आपका डेटाबेस एक दस्तावेज़-उन्मुख डेटाबेस है जो आपके द्वारा अपेक्षित आकार के बाइनरी दस्तावेज़ों के समर्थन के साथ है, तो डेटाबेस में उन्हें स्टोर करना पूरी तरह बुद्धिमान हो सकता है।

+0

क्या आप ऐसे कुछ डेटाबेस नाम दे सकते हैं? – Moonwalker

+2

मार्कलोगिक (http://developer.marklogic.com/) एक्सएमएल, जेएसओएन, टेक्स्ट, और बाइनरी दस्तावेज़ों को संग्रहीत करने का समर्थन करता है। Http://github.com/marklogic/Corona के साथ-साथ मूल क्वेरी भाषा (XQuery) पर तेज़ी से जाने के लिए एक REST API है। –

संबंधित मुद्दे

 संबंधित मुद्दे