MySQL में बाइनरी डेटा

मैं MySQL में बाइनरी डेटा कैसे संग्रहीत करूं?

0
जोड़ा संपादित
विचारों: 12
जोड़ा लेखक juergen d, स्रोत
@Nevir: आप विशेष रूप से किस जानकारी के बाद हैं? आपको लगता है कि @ phpguy's और @Mat's उत्तर?
जोड़ा लेखक eggyal, स्रोत
क्षमा करें, मेरा मतलब यह नहीं था (एसओ के साथ यूआई बग में भाग गया), लेकिन बक्षीस को हटा नहीं सकता है
जोड़ा लेखक Nevir, स्रोत

8 उत्तर

Phpguy का उत्तर सही है लेकिन मुझे लगता है कि अतिरिक्त विवरण में बहुत भ्रम है।

मूल उत्तर BLOB डेटा प्रकार / विशेषता डोमेन में है। BLOB बाइनरी बड़े ऑब्जेक्ट के लिए छोटा है और कॉलम डेटा प्रकार बाइनरी डेटा को संभालने के लिए विशिष्ट है।

MySQL के लिए प्रासंगिक मैन्युअल पृष्ठ देखें।

0
जोड़ा

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

इसके बजाय, फ़ाइल सिस्टम में फ़ाइलों को स्टोर करें, और अपने डेटाबेस में फ़ाइल नाम स्टोर करें।

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

उपलब्ध यहां में एक बेहतर संग्रहण कार्यान्वयन। आप फ्लोरियन के कार्यान्वयन के साथ मुद्दों में भाग लेंगे।

0
जोड़ा

जबकि आपने यह नहीं कहा है कि आप क्या स्टोर कर रहे हैं, और आपके पास ऐसा करने का एक बड़ा कारण हो सकता है, अक्सर उत्तर 'फाइल सिस्टम संदर्भ के रूप में' होता है और वास्तविक डेटा कहीं भी फाइल सिस्टम पर होता है।

http://www.onlamp.com/pub/a /onlamp/2002/07/11/MySQLtips.html

0
जोड़ा

The question also arises how to get the data into the BLOB. You can put the data in an INSERT statement, as the PHP example shows (although you should use mysql_real_escape_string instead of addslashes). If the file exists on the database server, you can also use MySQL's LOAD_FILE

0
जोड़ा

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

0
जोड़ा

यह उस डेटा पर निर्भर करता है जिसे आप स्टोर करना चाहते हैं। उपर्युक्त उदाहरण LONGBLOB डेटा प्रकार का उपयोग करता है, लेकिन आपको अवगत होना चाहिए कि अन्य बाइनरी डेटा प्रारूप भी हैं:

TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB
VARBINARY
BINARY

प्रत्येक के पास उनके उपयोग के मामले हैं। यदि यह एक ज्ञात (लघु) लंबाई (जैसे पैक किया गया डेटा) अक्सर बिनरी या VARBINARY काम करेगा। उनके पास टन सूचकांक सक्षम होने का अतिरिक्त लाभ है।

0
जोड़ा

जब मुझे द्विआधारी डेटा स्टोर करने की आवश्यकता होती है तो मैं हमेशा VARBINARY प्रारूप का उपयोग करता हूं, जैसा कि byd0nut पेश किया गया है।

You can find documentation at MySQL website under documented topic 12.4.2 The BINARY and VARBINARY Types

If you are asking what are advantagese, please look at question why-varbinary-instead-of-varchar

0
जोड़ा