DevCore.net

MYSQL

Speicher sparen mit COMPRESS() und UNCOMPRESS()

Große Log-Dateien fressen Speicherkontingent? COMPRESS() ist dein Freund!

-- Speichern (komprimieren)
INSERT INTO logs (content) VALUES (COMPRESS('großer text hier...'));

-- Auslesen (dekomprimieren)
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!

JSON direkt in MySQL: Flexibilität trifft Datenbank

MySQL hat Superkräfte mit JSON! Statt mühsame Normalisierung brauchst du nur:

-- Speichern
INSERT INTO users (profile) VALUES ('{"name":"John","age":30}');

-- Abfragen
SELECT profile->>'$.name' AS name FROM users;

-- Suchen
SELECT JSON_SEARCH(profile, 'one', 'John') FROM users;

-- Aktualisieren
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:

-- MariaDB: statt ->>
SELECT JSON_VALUE(profile, '$.name') AS name FROM users;

JSON_VALUE() ist zukunftssicher und wird auch in neueren MySQL-Versionen unterstützt.