MySQL: Anleitungen und Praxiswissen | Seite 10 | mironsoft Blog
MySQL
-
09.02.2025
In vielen gewachsenen Magento-Datenbanken verbindet sich die gesamte Anwendung, jeder Cron-Job und jedes Reporting-Tool über denselben, oft Jahre alten Datenbanknutzer mit vollen Rechten. Dieser Artikel zeigt, wie man mit der validate_password-Komponente belastbare Passwort-Policies durchsetzt, Passwort-Ablauf und -Historie sauber konfiguriert und das Prinzip der geringsten Rechte mit klar getrennten Nutzern für Read-Only-Reporting, Migrationen und den eigentlichen Anwendungsbetrieb umsetzt.
-
09.02.2025
Wenn ein MySQL-Server mitten in einem Schreibvorgang abstürzt, entscheidet das Redo Log darüber, ob Daten verloren gehen oder ob die Datenbank sich beim nächsten Start automatisch selbst repariert. Das Verständnis von Write-Ahead Logging, Checkpoint-Mechanik und Log-Sizing ist deshalb keine akademische Übung, sondern die Grundlage für belastbare Produktionsdatenbanken. Dieser Artikel erklärt den kompletten Mechanismus mit echten Konfigurationsbeispielen.
-
02.02.2025
Ein einzelner Listen-Query gefolgt von einer Query pro Element im Loop wirkt im Entwicklungsalltag harmlos, verwandelt sich unter Produktionslast jedoch in hunderte oder tausende Datenbankaufrufe pro Seitenaufruf. Dieser Artikel zeigt, wie sich das N+1-Query-Problem in ORM- und Collection-Code erkennt, mit Eager Loading und Batch-Queries beheben und mit Profiling-Tools dauerhaft überwachen lässt.
-
31.01.2025
Partitionierung verspricht schnellere Löschvorgänge und bessere Wartbarkeit bei sehr grossen Tabellen, ist aber kein universelles Performance-Werkzeug. RANGE-, LIST- und HASH-Partitionierung lösen unterschiedliche Probleme und bringen eigene Einschränkungen bei Fremdschlüsseln, Unique Keys und der Query-Planung mit, die vor dem Einsatz bekannt sein müssen.
-
28.01.2025
Wer Anwendungen zwischen PostgreSQL und MySQL migriert oder beide Systeme parallel betreibt, stoesst schnell auf Syntax-Unterschiede, die auf den ersten Blick harmlos wirken, aber ganze Migrationen verzoegern koennen. Dieser Artikel vergleicht Datentypen, Auto-Increment, JSON-Unterstuetzung, Pagination und Upsert Syntax zwischen PostgreSQL und MySQL anhand lauffaehiger Beispiele.
-
18.01.2025
Ein Datenbank-Snapshot, der waehrend laufender Schreibvorgaenge entsteht, kann intern inkonsistent sein, selbst wenn die Sicherung ohne Fehlermeldung durchlaeuft. Erst beim Restore, oft Monate spaeter, zeigt sich, dass Indizes und Tabellen nicht mehr zusammenpassen. Dieser Artikel zeigt, wie MariaDB, MySQL und PostgreSQL unter Linux wirklich konsistente Snapshots erzeugen, mit Locking, Mariabackup, LVM und WAL-Archivierung.
-
17.01.2025
Der Adaptive Hash Index beobachtet Zugriffsmuster auf B-Tree-Seiten im Buffer Pool und baut daraus automatisch eine In-Memory-Hash-Struktur, die Equality-Lookups beschleunigen soll. Das funktioniert gut, solange die Zugriffsmuster tatsächlich wiederholt und gleichförmig sind, kann bei starker Schreiblast aber selbst zum Flaschenhals werden.
-
13.01.2025
Ein MySQL Failover, der im Ernstfall Daten verliert oder die Anwendung minutenlang blockiert, ist kein Sicherheitsnetz, sondern ein zusätzliches Risiko. Wer geplanten von ungeplantem Failover unterscheidet, GTID konsequent nutzt und Failover regelmäßig testet, verwandelt einen abstrakten Notfallplan in einen verlässlichen operativen Prozess.
-
05.01.2025
MySQL 8 hat zwei kleine, aber praxisrelevante Index-Funktionen eingeführt, die in älteren Versionen schlicht fehlten: echte absteigende Indizes und unsichtbare Indizes. Vorher simulierte der Optimizer eine absteigende Sortierung durch einen Rückwärts-Scan über einen aufsteigenden Index, was bei gemischten Sortierrichtungen über mehrere Spalten hinweg an klare Grenzen stieß. Und ein bestehender Index ließ sich früher nur durch tatsächliches Löschen testen, ein riskanter Schritt in einer produktiven Magento-Datenbank. Dieser Artikel zeigt, wie beide Funktionen intern arbeiten, wann sich der Umbau eines bestehenden Index wirklich lohnt und wie sich Indexänderungen in einer laufenden Installation risikoarm durchführen lassen.
-
04.01.2025
Der Slow Query Log ist nur der erste Schritt, denn eine Rohdatei mit tausenden Zeilen bringt allein keine Erkenntnis. Dieser Artikel zeigt, wie long_query_time sinnvoll gewählt wird, wie pt-query-digest und mysqldumpslow die Daten aggregieren, und wie man daraus eine belastbare Priorisierung für die nächsten Optimierungen ableitet.