कोई अंतर नहीं है।
हालांकि, यदि आप एक स्ट्रिंग संग्रहित कर रहे हैं तो एक चेतावनी है।
यदि आप केवल एक बाइट सरणी या अन्य बाइनरी डेटा जैसे स्ट्रीम या फ़ाइल को स्टोर करना चाहते हैं तो बाइनरी प्रकार का उपयोग करें क्योंकि वे उसी के लिए हैं।
MySQL मैन्युअल से उद्धरण :
तो, तकनीकी रूप से कोई अंतर नहीं है।
हालांकि, एक स्ट्रिंग को संग्रहीत करते समय इसे एक वर्ण सेट का उपयोग करके स्ट्रिंग से बाइट मानों में परिवर्तित किया जाना चाहिए। निर्णय यह है कि या तो इसे MySQL सर्वर से पहले स्वयं करें या आप इसे MySQL पर छोड़ दें। MySQL BINARY
. पर एक स्ट्रिंग कास्ट करके प्रदर्शन करेगा बिन वर्ण सेट का उपयोग करना।
यदि आप एन्कोडिंग को किसी अन्य प्रारूप में संग्रहीत करना चाहते हैं, तो मान लें कि आपके पास एक व्यावसायिक आवश्यकता है जो कहती है कि आपको प्रति वर्ण 4 बाइट्स का उपयोग करना चाहिए (MySQL डिफ़ॉल्ट रूप से ऐसा नहीं करता है) तो आप CHARACTER SET BINARYकोड का उपयोग कर सकते हैं। कोड> एक टेक्स्ट कॉलम में और वर्ण सेट एन्कोडिंग स्वयं करें।
यह पढ़ने लायक भी है The BINARY
और वर्बिनरी
प्रकार
यह MySQL मैनुअल से पैडिंग जैसी महत्वपूर्ण जानकारी का विवरण देता है।
सारांश: कोई तकनीकी अंतर नहीं है क्योंकि एक दूसरे का पर्याय है। मेरी राय में यह डेटा प्रकारों में बाइनरी स्ट्रिंग्स को स्टोर करने के लिए तार्किक समझ में आता है जो आमतौर पर CHARACTER SET BINARY
का उपयोग करके एक स्ट्रिंग रखता है। और बाइट एरे/स्ट्रीम आदि को BINARY
. में स्टोर करने के लिए फ़ील्ड जिन्हें वर्ण सेट के बावजूद डेटा को रूपांतरित करके प्रदर्शित नहीं किया जा सकता है।