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

क्या SQL तालिका के कॉलम में बड़े और छोटे संबंधित डेटा को अलग करना अधिक कुशल है?

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

बाइट्स की प्रभावी अधिकतम संख्या जिसे VARCHAR . में संग्रहीत किया जा सकता है या वर्बिनरी कॉलम 65,535 बाइट्स . के अधिकतम पंक्ति आकार के अधीन है , जो सभी स्तंभों के बीच साझा किया जाता है।

उदाहरण के लिए, एक VARCHAR(255) कॉलम में अधिकतम 255 वर्णों की एक स्ट्रिंग हो सकती है। यह मानते हुए कि कॉलम लैटिन 1 वर्ण सेट (प्रति वर्ण एक बाइट) का उपयोग करता है, आवश्यक वास्तविक भंडारण स्ट्रिंग की लंबाई (एल) की लंबाई है, साथ ही स्ट्रिंग की लंबाई रिकॉर्ड करने के लिए एक बाइट है। स्ट्रिंग के लिए 'abcd' , एल है 4 और भंडारण की आवश्यकता पांच बाइट्स है। यदि इसके बजाय उसी कॉलम को ucs2 . का उपयोग करने के लिए घोषित किया गया है डबल-बाइट कैरेक्टर सेट, स्टोरेज की आवश्यकता 10 बाइट्स है:'abcd' की लंबाई आठ बाइट्स है और कॉलम को लंबाई स्टोर करने के लिए दो बाइट्स की आवश्यकता होती है क्योंकि अधिकतम लंबाई 255 से अधिक है (510 बाइट्स )

बड़े डेटा के लिए, TEXT . का उपयोग करने पर विचार करें या बीएलओबी . पाठ और बीएलओबी NDB . में कॉलम अलग-अलग तरीके से लागू किए जाते हैं स्टोरेज इंजन, जिसमें प्रत्येक पंक्ति एक TEXT . में होती है स्तंभ दो अलग-अलग भागों से बना है। इनमें से एक निश्चित आकार का है (256 बाइट्स) , और वास्तव में मूल तालिका में संग्रहीत है। दूसरे में 256 बाइट्स . से अधिक का कोई भी डेटा होता है , जो एक छिपी हुई तालिका में संग्रहीत है। इस दूसरी तालिका में पंक्तियाँ हमेशा 2,000 बाइट्स होती हैं लंबा। इसका मतलब है कि एक TEXT . का आकार कॉलम 256 है अगर आकार <=256 (जहां आकार पंक्ति के आकार का प्रतिनिधित्व करता है); अन्यथा, आकार 256 + आकार + (2000 - (आकार - 256)% 2000) . है .

http://dev.mysql.com/doc/refman /5.6/hi/storage-requirements.html

आपके डेटाबेस संबंध पर निर्भर करता है, यदि आप शायद ही कभी उस फ़ील्ड का उपयोग क्वेरी में करते हैं। उदाहरण के लिए अतिरिक्त जानकारी के लिए। अलग टेबल बनाना अच्छा विकल्प है (सामान्य करें)।

नोट्स: VARCHAR CHAR . से अलग है . अगर आप VARCHAR(250) बनाते हैं और केवल 20 insert डालें उस पर अक्षर तो यह 5 बाइट्स लेगा + एल CHAR(250) . के साथ भिन्न , इसमें 250 बाइट्स लगेंगे + एल उसी स्थिति के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक्लिप्स ऑब्जेक्ट को डेटाटाइप टेक्स्ट के लिए डिफ़ॉल्ट मैपिंग प्रकार के रूप में क्यों प्रस्तावित करता है?

  2. कोडनिर्देशक डीबी-> अद्यतन () बनाम MySQL मूल अद्यतन प्रभावित पंक्तियाँ:0

  3. आप कॉलम नाम के विरोध से कैसे बचते हैं?

  4. अगर स्टेटमेंट के साथ एसक्यूएल क्वेरी

  5. PHP/MySQL के साथ फ़िल्टरिंग खोजें