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

बेस 64 इमेज सेलेक्ट और डेटाबेस से एनकोड करने पर पाया गया धीमापन

एक नियम के रूप में, डेटाबेस में फ़ाइलों को सेव न करें।

इसके बारे में mysql मैनुअल का क्या कहना है? http://dev.mysql.com/doc/refman/5.7/hi/miscellaneous-optimization-tips.html

<ब्लॉकक्वॉट>

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

बेस4 एन्कोडेड फ़ाइलों को डेटाबेस में बिल्कुल भी सेव न करें

<ब्लॉकक्वॉट>

ठीक काम करता है, लेकिन इतना समय ले लो कि मुझे उम्मीद थी। इसलिए, छवि 33% बड़े आकार की है, और पूरी तरह से उभरी हुई दिखती है।

जैसा कि आपने पाया, एन्कोडिंग/डिकोइंग में अवांछित ओवरहेड + अतिरिक्त स्थान का उपयोग किया गया जिसका अर्थ है कि अतिरिक्त डेटा स्थानांतरण भी आगे और पीछे।

जैसा कि @ माइक-एम ने उल्लेख किया है। बेस 64 एन्कोडिंग एक संपीड़न विधि नहीं है। बेस 64 एन्कोडिंग का उपयोग क्यों एक लिंक द्वारा किया जाता है जिसे @ माइक-एम ने पोस्ट किया है कि बेस 64 एन्कोडिंग का उपयोग किस लिए किया जाता है?।

संक्षेप में, बेस 64 एन्कोडिंग छवियों को फ़ाइल सिस्टम पर संग्रहीत करने से पहले कुछ भी हासिल करने और खोने के लिए कुछ भी नहीं है, चाहे वह S3 हो या अन्यथा।

बेस 64 को शामिल किए बिना Gzip या संपीड़न के अन्य रूपों के बारे में क्या। फिर उत्तर यह है कि पाने के लिए कुछ नहीं है और खोने के लिए बहुत कुछ है। उदाहरण के लिए, मैंने अभी-अभी 19411980 की JPEG छवि को gzip किया और 4000 बाइट्स सहेजे जो कि 0.2% की बचत है।

कारण यह है कि छवियां पहले से ही संपीड़ित स्वरूपों में हैं। उन्हें और अधिक संकुचित नहीं किया जा सकता है।

जब आप बिना संपीड़न के छवियों को संग्रहीत करते हैं तो उन्हें सीधे ब्राउज़र और अन्य क्लाइंट तक पहुंचाया जा सकता है और उन्हें कैश किया जा सकता है। यदि वे संपीड़ित (या बेस 64 एन्कोडेड) हैं, तो उन्हें आपके ऐप द्वारा विघटित करने की आवश्यकता है।

आधुनिक ब्राउज़र HTML में एम्बेडेड बेस 64 छवियों को प्रदर्शित करने में सक्षम हैं लेकिन फिर उन्हें कैश नहीं किया जा सकता है और डेटा की आवश्यकता से लगभग 30% बड़ा है।

क्या यह मानदंड का अपवाद है?

<ब्लॉकक्वॉट>

उपयोगकर्ता वहां डेटा और छवि पोस्ट कर सकते हैं और सभी सुरक्षित हैं।

मुझे लगता है कि आपका मतलब है कि कोई उपयोगकर्ता उन छवियों को डाउनलोड कर सकता है जो उससे संबंधित हैं या उसके साथ साझा की गई हैं। यह फ़ाइल सिस्टम में वेबस्पेस से फ़ाइलों को सहेज कर और डेटाबेस में केवल पथ को सहेज कर आसानी से प्राप्त किया जा सकता है। फिर फ़ाइल क्लाइंट को (आवश्यक जाँच करने के बाद) fpassthru

क्या होगा जब मैं 100000 उपयोगकर्ताओं तक पहुंच जाऊं

<ब्लॉकक्वॉट>

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

एक सीडीएन का प्रयोग करें या एक फाइल सिस्टम का उपयोग करें जो विशेष रूप से इसके लिए उपयुक्त है जैसे बीटीआरएफएस

<ब्लॉकक्वॉट>

डेटाबेस में अच्छी खोज सुविधा, अच्छा थ्रेड सुरक्षित कनेक्शन, अच्छा सत्र प्रबंधन है। क्या बड़े ऑपरेशन के शामिल होने पर यह परिदृश्य बदल जाता है

हाँ सचमुच। डेटाबेस में फ़ाइल और उसके फ़ाइल पथ के बारे में सभी जानकारी सहेज कर इसका पूरा उपयोग करें। फिर फाइल को फाइल सिस्टम में ही सेव करें। आपको दोनों दुनियाओं में सर्वश्रेष्ठ मिलता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में प्राकृतिक छँटाई

  2. प्रति मान COUNT द्वारा आदेश

  3. आदेश द्वारा क्लॉज का उपयोग करके MySQL में सॉर्ट करना

  4. MySQL में शामिल हों के साथ हटाएं

  5. PHP का उपयोग करके दूरस्थ MySQL सर्वर से कनेक्ट करना