SQL: Anleitungen und Praxiswissen | Seite 15 | mironsoft Blog
SQL
-
26.06.2025
Datenqualität ist kein Zustand, der einmal erreicht und dann dauerhaft gehalten wird, sondern ein fortlaufender Prozess, der bei jedem neuen Import, jeder Migration und jedem Deployment erneut auf die Probe gestellt wird. Wer Qualitätsprüfungen nur gelegentlich manuell durchführt, entdeckt Probleme meist erst, wenn sie bereits Reports verzerrt oder nachgelagerte Systeme beschädigt haben. Dieser Artikel zeigt, welche SQL-basierten Checks sich automatisiert in Pipelines einbauen lassen, wie Schwellenwert-basiertes Alerting funktioniert und wie ein konkreter Check ein fehlerhaftes Deployment aktiv verhindern kann.
-
25.06.2025
Ein Deadlock entsteht, wenn sich zwei Transaktionen gegenseitig blockieren, weil jede auf eine Ressource wartet, die die andere hält. Konsistente Sperrreihenfolge im Anwendungscode, kurze Transaktionen und robuste Retry-Logik verhindern die meisten Deadlocks, bevor die Datenbank überhaupt eingreifen muss.
-
24.06.2025
Insert oder Update in einer einzigen Anweisung klingt nach einem einfachen Problem, doch jede Datenbank loest es mit eigener Syntax, eigener Atomaritaet und eigenen Fallstricken. Wer Upsert-Code zwischen MySQL, PostgreSQL, SQL Server, Oracle und SQLite portabel halten will, muss die Unterschiede kennen, bevor der erste produktive Wechsel ansteht.
-
23.06.2025
Ein Klon der Produktivdatenbank ist für Tests verlockend praktisch: realistische Datenmengen, echte Kantenfälle, keine mühsame Testdatenerstellung. Genau das macht ihn aber zum Compliance-Risiko, sobald echte Kundendaten in einer Umgebung mit schwächerer Zugriffskontrolle und breiterem Nutzerkreis landen. Dieser Artikel zeigt, wie sich Staging-Datenbanken systematisch anonymisieren lassen, ohne dass Tests an Aussagekraft verlieren, und wie referenzielle Konsistenz über Fremdschlüssel hinweg dabei erhalten bleibt.
-
23.06.2025
String-Aggregation fasst mehrere Zeilen einer Gruppe zu einer einzigen, kommagetrennten Textliste zusammen, etwa alle Tags eines Produkts in einer Zeile statt in mehreren Zeilen. MySQL nutzt dafür GROUP_CONCAT, PostgreSQL und SQL Server STRING_AGG, Oracle LISTAGG. Dieser Artikel zeigt Syntax, Reihenfolge, Trennzeichen und Längenlimits aller vier Systeme im direkten Vergleich.
-
23.06.2025
Ein falsch gewaehlter Join-Typ liefert entweder zu wenige Zeilen, weil unpassende Datensaetze stillschweigend verschwinden, oder zu viele Zeilen, weil eine fehlende Join-Bedingung ein kartesisches Produkt erzeugt. Inner Join, Left Join, Right Join und Full Join unterscheiden sich genau darin, welche Zeilen aus den beteiligten Tabellen in der Ergebnismenge landen, wenn eine Bedingung nicht erfuellt ist, und wer das nicht versteht, baut Reports mit stillschweigend falschen Zahlen.
-
23.06.2025
Warum MySQL's utf8 kein echtes UTF-8 ist, welche Collation für Magento und deutschen Shopbetrieb passt, und wie du sicher auf utf8mb4 migrierst.
-
-
12.06.2025
ETL-Patterns lassen sich in weiten Teilen direkt in SQL abbilden, ohne dass jede Transformation in Anwendungscode wandert. Wer Extract, Transform und Load als Mengenoperationen begreift, baut Pipelines, die idempotent, nachvollziehbar und einfach zu testen sind, statt fragiler Skriptketten mit versteckten Seiteneffekten.
-
10.06.2025
Eine Abfrage ohne Timeout ist eine Wette auf die Zukunft: Solange alles normal läuft, fällt sie nie auf. Sobald aber eine Tabelle unerwartet wächst, ein Index fehlt oder ein Lock länger als geplant gehalten wird, kann genau diese Abfrage minuten- oder stundenlang blockieren, Verbindungen im Pool belegen und im schlimmsten Fall die gesamte Anwendung lahmlegen. Ein sauber konfiguriertes Timeout ist deshalb keine Kosmetik, sondern eine der wirksamsten Maßnahmen gegen kaskadierende Ausfälle. Der Artikel trennt Statement-Timeout auf Datenbankseite von Connection-Timeout auf Anwendungsseite, zeigt sinnvolle Werte für unterschiedliche Anwendungsfälle und erklärt, wie eine Transaktion nach einem Timeout sauber behandelt wird.