Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

बीएलओबी वीएस ओएस फाइल सिस्टम का उपयोग कर MySQL बाइनरी स्टोरेज:बड़ी फाइलें, बड़ी मात्रा में, बड़ी समस्याएं

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

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

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

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

मुझे परवाह नहीं है कि तकनीकी कारण क्या है नहीं इस सामग्री को DB में डालना, लेकिन यह इतना आसान है एक समेकित स्थान में प्रबंधन करने के लिए मैं हार्डवेयर को दोगुना और तिगुना कर सकता हूं या सलाहकारों और ग्राहकों द्वारा बर्बाद किए गए समय के लिए अलग-अलग फाइलों को प्रबंधित करने में थोड़े समय के लिए डीबी को ग्रिड कर सकता हूं।

अपडेट करें:टिप्पणी करने वालों पर सहज रहें, वे इस मामले पर अपनी राय दे रहे हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कुल स्कोर के आधार पर रैंक करने के लिए PHP MYSQL रैंकिंग क्वेरी प्राप्त करना

  2. डेटटाइम को MySQL में किसी संख्या में कैसे परिवर्तित करें?

  3. मैं MySQL में DESC अनुक्रमणिका कैसे बनाऊँ?

  4. PHP में SQL परिणामों के माध्यम से लूपिंग - संपूर्ण सरणी नहीं मिल रही है

  5. दो स्थितियों से मेल खाने वाली कई पंक्तियों का चयन करें