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

मारियाडीबी में UNCOMPRESSED_LENGTH () कैसे काम करता है

मारियाडीबी में, UNCOMPRESSED_LENGTH() एक अंतर्निहित फ़ंक्शन है जो COMPRESS() के साथ संपीड़ित होने से पहले एक संपीड़ित स्ट्रिंग की लंबाई लौटाता है समारोह।

सिंटैक्स

वाक्य रचना इस प्रकार है:

UNCOMPRESSED_LENGTH(compressed_string)

जहां compressed_string संकुचित स्ट्रिंग है।

उदाहरण

यहां एक बुनियादी उदाहरण दिया गया है:

SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('z', 50)));

परिणाम:

+------------------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('z', 50))) |
+------------------------------------------------+
|                                             50 |
+------------------------------------------------+

यहाँ, मैंने REPEAT() . का उपयोग किया है एक ही अक्षर को 50 बार दोहराने का कार्य। चरित्र को दोहराने से यह संपीड़न के लिए एक अच्छा उम्मीदवार बन जाता है।

संपीड़ित स्ट्रिंग की तुलना में

संपीड़ित स्ट्रिंग की तुलना में यह फिर से है:

SELECT
    LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
    UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('z', 50))) AS "Uncompressed";

परिणाम:

+------------+--------------+
| Compressed | Uncompressed |
+------------+--------------+
|         16 |           50 |
+------------+--------------+

बाइट लंबाई बनाम वर्ण लंबाई

UNCOMPRESSED_LENGTH() बाइट्स . में लंबाई पर रिपोर्ट (सिर्फ वर्ण की लंबाई के विपरीत)।

हम एक बहु-बाइट वर्ण का उपयोग करके इसका परीक्षण कर सकते हैं, जैसे कि कॉपीराइट प्रतीक (© ), फिर इसे LENGTH() . जैसे कार्यों में पास करना बाइट्स में लंबाई प्राप्त करने के लिए, और CHAR_LENGTH() वर्ण लंबाई प्राप्त करने के लिए:

SELECT 
    UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('©', 50))) AS "UNCOMPRESSED_LENGTH()",
    LENGTH(REPEAT('©', 50)) AS "Uncompressed (Bytes)",
    LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed (Bytes)",
    CHAR_LENGTH(REPEAT('©', 50)) AS "Uncompressed (Char)",
    CHAR_LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed (Char)";

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

UNCOMPRESSED_LENGTH(): 100
 Uncompressed (Bytes): 100
   Compressed (Bytes): 17
  Uncompressed (Char): 50
    Compressed (Char): 17

यहां एक और उदाहरण दिया गया है जो थाई वर्ण का उपयोग करता है:

SELECT 
    UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('อ', 50))) AS "UNCOMPRESSED_LENGTH()",
    LENGTH(REPEAT('อ', 50)) AS "Uncompressed (Bytes)",
    LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed (Bytes)",
    CHAR_LENGTH(REPEAT('อ', 50)) AS "Uncompressed (Char)",
    CHAR_LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed (Char)";

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

UNCOMPRESSED_LENGTH(): 150
 Uncompressed (Bytes): 150
   Compressed (Bytes): 18
  Uncompressed (Char): 50
    Compressed (Char): 18

यह थाई वर्ण 3 बाइट्स का उपयोग करता है, और इसलिए हम असम्पीडित स्ट्रिंग के लिए 150 बाइट्स के साथ समाप्त होते हैं, भले ही स्ट्रिंग केवल 50 वर्ण लंबी हो।

अशक्त तर्क

पासिंग null रिटर्न null :

SELECT UNCOMPRESSED_LENGTH(null);

परिणाम:

+---------------------------+
| UNCOMPRESSED_LENGTH(null) |
+---------------------------+
|                      NULL |
+---------------------------+

अनुपलब्ध तर्क

कॉल करना UNCOMPRESSED_LENGTH() तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:

SELECT UNCOMPRESSED_LENGTH();

परिणाम:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESSED_LENGTH'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में MONTHNAME () कैसे काम करता है

  2. मारियाडीबी स्काईएसक्यूएल के साथ क्लाउड में ऊंची उड़ान भरें

  3. मारियाडीबी JSON_MERGE_PATCH () समझाया गया

  4. मारियाडीबी में ओसीटी () कैसे काम करता है

  5. मारियाडीबी JSON_INSERT () समझाया गया