Ce face UNCOMPRESSED_LENGTH()
COMPRESS() salvează lungimea originală în primii 4 octeți ai rezultatului. UNCOMPRESSED_LENGTH() citește doar acești octeți, deci este mult mai rapidă decât LENGTH(UNCOMPRESS(...)).
Funcția nu verifică dacă restul datelor este valid. Pe un text care nu a fost comprimat, rezultatul nu are sens.
Parametri
| Parametru | Descriere |
|---|---|
text_comprimat |
Rezultatul lui COMPRESS(). |
Ce returnează
Lungimea originală în octeți sau NULL.
Exemple
Exemplul 1: Lungimea originală și cea comprimată
SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a', 30))) AS original,
LENGTH(COMPRESS(REPEAT('a', 30))) AS comprimat;
Rezultat
+----------+-----------+
| original | comprimat |
+----------+-----------+
| 30 | 15 |
+----------+-----------+
Greșeli frecvente
- Folosești rezultatul ca număr de caractere. Este numărul de octeți: un text cu diacritice în
utf8mb4are mai mulți octeți decât caractere.
Comenzi înrudite
COMPRESS(): Comprimă un text (cu zlib) și returnează rezultatul ca șir binar.UNCOMPRESS(): Decomprimă un text comprimat cu COMPRESS(); returnează NULL dacă datele nu sunt comprimate.LENGTH(): Returnează lungimea unui text în octeți (bytes), nu în caractere.