Große Log-Dateien fressen Speicherkontingent? COMPRESS() ist dein Freund!
INSERT INTO logs (content) VALUES (COMPRESS('großer text hier...'));
SELECT UNCOMPRESS(content) FROM logs WHERE id = 1;
Die Magie: zlib-Komprimierung reduziert Textdaten auf 20-30% der ursprünglichen Größe.
Idealfall: Logs, alte Artikel, Backup-Metadaten.
Achtung: Die CPU-Kosten für Komprimierung/Dekomprimierung lohnen sich vor allem bei größeren Datenmengen – bei kleinen Texten überwiegt der Overhead!
MySQL hat Superkräfte mit JSON! Statt mühsame Normalisierung brauchst du nur:
INSERT INTO users (profile) VALUES ('{"name":"John","age":30}');
SELECT profile->>'$.name' AS name FROM users;
SELECT JSON_SEARCH(profile, 'one', 'John') FROM users;
UPDATE users SET profile = JSON_SET(profile, '$.age', 31) WHERE id = 1;
Vorteile: Kein Schema-Overhead, direkter Zugriff auf verschachtelte Daten, perfekt für halbstrukturierte Daten.
Tipp: Indexiere JSON-Pfade mit GENERATED COLUMNS für bessere Performance!
Hinweis zu MariaDB
⚠️ Achtung: Die moderne JSON-Syntax (-> und ->>) funktioniert in MariaDB noch nicht. Verwende stattdessen JSON_VALUE() für einen ähnlichen Effekt:
SELECT JSON_VALUE(profile, '$.name') AS name FROM users;
JSON_VALUE() ist zukunftssicher und wird auch in neueren MySQL-Versionen unterstützt.