मैंने पढ़ा कि डेटा प्रकार फ़ाइलों को स्टोर करने के लिए उपयोग किया जा सकता है।
ब्लॉब पर MySQL manual पृष्ठ के अनुसार, एक BLOB
एक द्विआधारी बड़ी वस्तु है कि डेटा की एक परिवर्तनीय मात्रा पकड़ कर सकते हैं।
चूंकि यह बाइनरी डेटा स्टोर करने के लिए विशिष्ट डेटा प्रकार है, इसलिए इसे वेब अनुप्रयोगों पर छवि फ़ाइलों को संग्रहीत करने के लिए बाइनरी प्रारूप में फ़ाइलों को संग्रहीत करने के लिए इसका उपयोग करना आम है।
वेब अनुप्रयोगों के लिए इसका मतलब यह होगा कि आपको सबसे पहले अपनी फ़ाइल को बाइनरी प्रारूप में परिवर्तित करने की आवश्यकता होगी और फिर इसे स्टोर करना होगा, और हर बार जब आपको अपनी फ़ाइल पुनर्प्राप्त करने की आवश्यकता होगी तो आपको उन्हें वापस परिवर्तित करने की रिवर्स प्रक्रिया करने की आवश्यकता होगी मूल प्रारूप
इसके अलावा, आपके डीबी मई में बड़ी मात्रा में डेटा संग्रहीत करना इसे धीमा कर दें। विशेष रूप से उन प्रणालियों में जो केवल डेटाबेस होस्ट करने के लिए समर्पित नहीं हैं।
मैं भी पढ़ा है कि एक विकल्प डिस्क पर फ़ाइल की दुकान करने के लिए है और मन में
असर सब से ऊपर विचार वेब अनुप्रयोगों के लिए एक आम बात स्टोर करने के लिए है डेटाबेस में उसके स्थान का सूचक शामिल आपकी फाइलें आपके MySQL से कहीं और फिर बस अपने डेटाबेस पर इसका पथ संग्रहीत करें। इस दृष्टिकोण मई बड़ी मात्रा में डेटा से निपटने के दौरान अपने डेटाबेस को तेज करें।
लेकिन मैं थोड़ा उलझन में हूं क्योंकि मैंने पढ़ा है कि ब्लॉब फ़ील्ड इन-पंक्ति में संग्रहीत नहीं हैं और इसकी सामग्री को पुनर्प्राप्त करने के लिए एक अलग रूपरेखा की आवश्यकता है।
वास्तव में यह निर्भर करेगा कि आप किस स्टोरेज इंजन का उपयोग कर रहे हैं क्योंकि प्रत्येक इंजन डेटा का व्यवहार करता है और इसे विभिन्न तरीकों से स्टोर करता है।इनो डीबी इंजन के लिए, जो रिलेशनल डेटाबेस के लिए उपयुक्त है, आप इस आलेख को MySQL Performance blog से पढ़ सकते हैं कि ब्लॉब MySQL में कैसे संग्रहीत किया जाता है। पर संग्रहीत करने के लिए
InnoDB भंडार पंक्ति पृष्ठ पर या तो पूरा ब्लॉब या केवल 20 बाइट्स ब्लॉब सूचक छोटे स्तंभों को वरीयता देने के:
लेकिन सार में, MySQL 5 पर और आगे ब्लॉब निम्नलिखित के रूप में संग्रहीत किया जाता है पृष्ठ, जो उचित है क्योंकि आप उनमें से अधिक स्टोर कर सकते हैं।
तो शायद आप सोच रहे हैं कि जाने का सही तरीका उन्हें अलग फ़ाइल के रूप में स्टोर करना है, लेकिन डेटा स्टोर करने के लिए ब्लॉब का उपयोग करने के कुछ फायदे हैं, पहला (मेरी राय में) बैकअप है। मैं एक छोटा सर्वर प्रबंधित करता हूं और मुझे अन्य स्टोरेज डिस्क पर पथ के रूप में संग्रहीत फ़ाइलों को कॉपी करने के लिए केवल एक और सबराउटिन बनाना होता था (हम एक सभ्य टेप बैकअप सिस्टम खरीदने का जोखिम नहीं उठा सकते थे)। यदि मैंने ब्लॉब्स का उपयोग करने के लिए अपना एप्लिकेशन डिज़ाइन किया था तो एक साधारण mysqldump
वह सब कुछ होगा जो मुझे अपने पूरे डेटाबेस का बैकअप लेने के लिए आवश्यक था।
बैकअप के लिए ब्लॉब्स संग्रह करने का लाभ this post पर बेहतर चर्चा की गई है, जिसने उत्तर देने वाले व्यक्ति की तुलना में इसी तरह की समस्या थी।
एक अन्य लाभ सुरक्षा और अनुमति और पहुंच के प्रबंधन की आसानता है। आपके MySQL सर्वर के अंदर मौजूद सभी डेटा पासवर्ड सुरक्षित है और आप आसानी से अपने उपयोगकर्ताओं के लिए अनुमतियां प्रबंधित कर सकते हैं कि किसके पास और कौन नहीं है।
एक ऐसे एप्लिकेशन में जो प्रमाणीकरण और उपयोग के लिए MySQL विशेषाधिकार प्रणाली पर निर्भर करता है। यह निश्चित रूप से एक प्लस है क्योंकि आइए एक आक्रमणकर्ता को आपकी डिस्क से किसी छवि को पुनर्प्राप्त करने के लिए एक आक्रमणकारक (या एक ज़िप वाली फ़ाइल जैसी एक बाइनरी फ़ाइल) कहने के लिए थोड़ा कठिन होगा।
तो मैं कहेंगे कि
तुम अपने MySQL और सभी डेटा आप इसे में है और नियमित रूप से बैकअप कर सकते हैं या बदल सकते हैं या यहां तक कि ओएस के भविष्य के परिवर्तन पर विचार करने का इरादा चाहिए, और एक सभ्य राशि का प्रबंधन करते हैं हार्डवेयर और इसे आपके MySQL अनुकूलित करें, बीएलओबी के लिए जाएं।
आप (उदाहरण के लिए एक वेब होस्ट के रूप में) अपने MySQL का प्रबंधन नहीं जाएगा और ओएस बदलने के लिए या बैकअप बनाने, varchar
कॉलम आपकी फ़ाइलों की ओर इशारा करते के साथ छड़ी का इरादा नहीं है।
मुझे आशा है कि इससे मदद मिलेगी। चीयर्स
और लगता है कि वह विंडोज सर्वर से लिनक्स में बदलता है। फाइलों को इंगित करने के लिए अभी भी एक बेहतर तरीका है? –
यदि आप फ़ोल्डर अलगाव/या किसी भी सरल एसक्यूएल क्वेरी या माइग्रेशन स्क्रिप्ट के बारे में बात करते हैं तो सभी रिकॉर्ड बदलने में सक्षम हैं। इसके अतिरिक्त यदि यह एक वेब अनुप्रयोग है, आमतौर पर सापेक्ष पथ संग्रहीत होते हैं। – SaidbakR
इसमें एम्बेडेड दसियों या सैकड़ों जीबी फाइलों के साथ डेटाबेस का बैक अप लेना बिल्कुल मजेदार नहीं है। इस पर कई टीबी डेटा के साथ एक फाइल सिस्टम का बैक अप लेना 'rsync' के साथ आसान है। – tadman