क्या MySQL BLOB में लंबे समय तक 2 मिलियन वर्णों को संभाल सकता है


0

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

मुझे लगता है कि यह एक एकल कॉलम पढ़ने के लिए तेज़ होने के लिए होगा, और दसियों हज़ार पंक्तियों को एक सरणी में पढ़ने की तुलना में बहुत लंबी स्ट्रिंग की खोज करेगा और फिर, मुझे पीएचपी में सरणियों की तुलना में स्ट्रिंग के साथ काम करना आसान लगता है।


devzone.zend.com/26/use-mysql-full-text-searching उपयोग MySQL पूर्ण-पाठ खोज। LONGBLOB, LONGTEXT 4294967295 (2 ^ 32 - 1) या (2 ^ 32 - 2) / 2 - UTF8 प्रतीक।
STTR

महान संसाधन, मैं इसे गहराई से पढ़ूंगा।
MountainMan

जवाबों:


0

क्या MySQL BLOB में लंबे समय तक 2 मिलियन वर्णों को संभाल सकता है?

एक बाइट्स का अधिकतम आकार BLOBहै 65535

हालाँकि यदि आप बड़े मूल्यों को संग्रहीत करना चाहते हैं तो आप एक MEDIUMBLOB( 16,777,215बाइट्स) या एक LONGBLOB( 4Gबाइट्स) का उपयोग कर सकते हैं ।

ध्यान दें:

  • एक यूनिकोड वर्ण सेट का उपयोग करते समय सभी वर्ण बाइट्स की समान संख्या का उपयोग नहीं करते हैं और प्रति वर्ण तीन (चार) बाइट की आवश्यकता हो सकती है।

हालाँकि:

BLOB या TEXT ऑब्जेक्ट का अधिकतम आकार इसके प्रकार द्वारा निर्धारित किया जाता है, लेकिन ग्राहक और सर्वर के बीच वास्तव में आप जो सबसे बड़ा मूल्य संचारित कर सकते हैं, वह उपलब्ध मेमोरी की मात्रा और संचार बफ़र्स के आकार से निर्धारित होता है।


UTF-8 वही है जो मैं वहाँ रखूँगा

Utf8 वर्ण सेट MySQL 5.7 में 5.7 से पहले जैसा है और इसमें बिल्कुल वैसी ही विशेषताएं हैं:

  • पूरक वर्णों के लिए कोई समर्थन नहीं (केवल BMP वर्ण)।

  • मल्टीबाइट चरित्र के प्रति अधिकतम तीन बाइट्स


एक BLOB क्या है?

एक BLOB एक द्विआधारी बड़ी वस्तु है जो डेटा की एक चर राशि को पकड़ सकता है। चार बीओबी प्रकार टिनिब्लोब, बीएलओबी, मेडीब्लोब, और लॉन्ज़ब्लोब हैं। ये केवल उन मूल्यों की अधिकतम लंबाई में भिन्न होते हैं जिन्हें वे पकड़ सकते हैं। चार पाठ प्रकार TINYTEXT, TEXT, MEDIUMTEXT, और LONGTEXT हैं। ये चार BLOB प्रकारों के अनुरूप हैं और इनकी अधिकतम लंबाई और भंडारण आवश्यकताएं समान हैं। देखें धारा 11.7, "डेटा प्रकार भंडारण आवश्यकताओं"

...

BLOB या TEXT ऑब्जेक्ट का अधिकतम आकार इसके प्रकार द्वारा निर्धारित किया जाता है, लेकिन ग्राहक और सर्वर के बीच वास्तव में आप जो सबसे बड़ा मूल्य संचारित कर सकते हैं, वह उपलब्ध मेमोरी की मात्रा और संचार बफ़र्स के आकार से निर्धारित होता है। आप संदेश बफर आकार को बदलकर max_allowed_packet चर का मान बदल सकते हैं, लेकिन आपको सर्वर और आपके क्लाइंट प्रोग्राम दोनों के लिए ऐसा करना होगा।

स्रोत 11.4.3 BLOB और पाठ प्रकार :


स्ट्रिंग प्रकार के लिए भंडारण आवश्यकताएँ

निम्नलिखित तालिका में, एम गैर-स्ट्रिंग स्ट्रिंग प्रकारों के लिए वर्णों में घोषित स्तंभ लंबाई और बाइनरी स्ट्रिंग प्रकारों के लिए बाइट्स का प्रतिनिधित्व करता है। एल एक दिए गए स्ट्रिंग मान के बाइट्स में वास्तविक लंबाई का प्रतिनिधित्व करता है।

यहां छवि विवरण दर्ज करें

...

यह पृष्ठ BLOB और TEXT प्रकारों को सूचीबद्ध करता है और आवश्यक भंडारण की गणना के लिए एक सूत्र देता है, लेकिन यह विभिन्न अधिकतम आकार नहीं देता है। वे यहाँ हैं:

  • TINYTEXT - 255 बाइट्स
  • पाठ - 65535 बाइट्स
  • MEDIUMTEXT - 16,777,215 बाइट्स (2 ^ 24 - 1)
  • LONGTEXT - 4G बाइट्स (2 ^ 32 - 1)

  • TINYBLOB - 255 बाइट्स

  • BLOB - 65535 बाइट्स
  • MEDIUMBLOB - 16,777,215 बाइट्स (2 ^ 24 - 1)
  • LONGBLOB - 4 जी बाइट्स (2 ^ 32 - 1)

स्रोत खंड 11.7 डेटा प्रकार संग्रहण आवश्यकताएँ :


ठीक है! यह उत्साहजनक है। मुझे उल्लेख करना चाहिए था, यूटीएफ -8 वह है जो मैं वहां डालूंगा। किसी भी स्थिति में, ये सूत्र; मैं उन्हें काम दूंगा लेकिन ऐसा लग रहा है कि यह आसानी से सब संभाल सकता है। । (अभी भी ग्राहक मुद्दा करने के लिए सर्वर के बारे में अनिश्चित हैं, लेकिन मैं कल्पना नहीं है यह पता करने के लिए आवश्यक किया जा रहा है, काम सर्वर पर किया जाएगा बहुत सराहना की।
MountainMan

यदि आप उपयोग कर रहे हैं तो @MountainMan 10.1.10.5 utf8 कैरेक्टर सेट (3-बाइट UTF-8 यूनिकोड एनकोडिंग) देखेंUTF-8 । प्रति वर्ण अधिकतम 3 बाइट्स का उपयोग करता है।
DavidPostill
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.