2011-11-21 24 views
9

वहाँ एक स्तंभ डेटाबेस में ब्लॉब नामित प्रकार है, और यह बाइनरी डेटा स्टोर करने के लिए प्रयोग किया जाता है बनाम।बाइनरी डेटा संकुचित बेस 64

लेकिन अधिक बार नहीं की तुलना में, मैं समाधान जो बाइनरी डेटा सेक देखते हैं, तो varchar या डेटाबेस में पाठ के रूप में बेस 64 को बाइनरी डेटा, और स्टोर base64 स्ट्रिंग परिवर्तित करते हैं।

अजगर कोड उदाहरण:

    ब्लॉब
  1. के रूप में संपीड़ित बेस 64 के रूप में

मेरे प्रश्न है:

import zlib, base64 
base64_str = base64.b64encode(zlib.compress(binary_data, 9)) 

तो दो डेटाबेस में बाइनरी डेटा स्टोर करने के लिए तरीके हैं : किस तरह बेहतर है और क्यों है?

+4

मुझे नहीं पता कि कोई भी विधि 2 का उपयोग क्यों करेगा। यह अनावश्यक जटिलता पेश करता है और डेटा को दो बार खराब करता है। हालांकि, मैं इसे एक उत्तर नहीं पोस्ट करूंगा क्योंकि मेरे पास कोई कठोर सबूत नहीं है कि ऐसे कोई मामले नहीं हैं जहां संकुचित बेस 64 'बीएलओबी 'पर फायदेमंद है। – Polynomial

उत्तर

12

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

मुझे केवल एक मामला मिलता है जो संकुचित बेस 64 उपयोगी है: आप तालिका स्कीमा को बदल नहीं सकते हैं, और केवल टेक्स्ट कॉलम हैं, आपको उस तालिका में बाइनरी डेटा स्टोर करना होगा। बाइनरी को बेस 64 स्ट्रिंग में कनवर्ट करना एकमात्र संभव तरीका है।

+3

आप जवाब और अपने खुद के सवाल लेकिन अच्छी तरह से किया जा सकता था स्वीकार नहीं जानते! –

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