MySQL: Anleitungen und Praxiswissen | Seite 5 | mironsoft Blog
MySQL
-
19.10.2025
Vor MySQL 8 bedeutete ein sauberes Rechtemodell in der Praxis meist, dieselbe Liste von GRANT-Anweisungen für jeden einzelnen Nutzer erneut auszuführen, mit allen Risiken einer Kopierarbeit, die irgendwann auseinanderläuft. Seit MySQL 8 lassen sich Rechte einmal zentral als Rolle definieren und anschließend beliebigen Nutzern zuweisen, inklusive der Möglichkeit, eine Rolle beim Login automatisch verpflichtend oder erst auf Anfrage aktiv zu schalten. Dieser Artikel zeigt die grundlegende Syntax, den Unterschied zwischen mandatory und optional aktivierten Rollen und ein praktisches Rechtemodell für ein Team mit Read-Only-Analyst, App-User und DBA auf einer gemeinsamen Magento-Datenbank.
-
12.10.2025
Der Change Buffer verzögert teure Random-I/O bei Sekundärindizes, und Undo Logs halten alte Zeilenversionen für MVCC und Rollback bereit. Beide arbeiten meist völlig unauffällig im Hintergrund, bis eine lang laufende Transaktion oder eine Schreiblast-Spitze sie plötzlich zum limitierenden Faktor macht.
-
10.10.2025
Generated Columns berechnen einen Wert automatisch aus anderen Spalten derselben Zeile und lassen sich, anders als reine Ausdrücke in der WHERE-Klausel, direkt indexieren. Dieser Artikel erklärt den Unterschied zwischen STORED und VIRTUAL, zeigt Indexierungsstrategien und konkrete Anwendungsfälle für JSON-Extraktion und berechnete Summen in MySQL 8.
-
10.10.2025
Langsame Kataloge entstehen fast nie durch zu wenig Hardware, sondern durch Queries ohne passenden Index, unnötig breite SELECT-Statements und fehlendes Caching. Dieser Artikel zeigt, wie man EXPLAIN-Pläne liest, fehlende Indizes diagnostiziert, Connection-Overhead reduziert und MySQL/MariaDB gezielt für katalogschwere PHP-Anwendungen konfiguriert.
-
27.09.2025
Seed-Daten unterscheiden sich fundamental von reinen Init-Skripten: Init-Skripte legen das Schema an, Seed-Daten füllen es mit realistischen, wiederholbaren Testdaten. Wer beide Konzepte vermischt, endet entweder mit leeren Entwicklungsdatenbanken oder mit inkonsistenten Testständen zwischen Teammitgliedern.
-
27.09.2025
Ein Galera Cluster erlaubt Schreibzugriffe auf mehreren Knoten gleichzeitig und repliziert synchron, statt wie klassische MySQL-Replikation nur asynchron nachzuziehen. Das macht Failover fast unsichtbar, bringt aber Certification-based Replication, Flow Control und Quorum-Regeln mit, die vor dem produktiven Einsatz verstanden sein müssen.
-
16.09.2025
Der MySQL-Optimizer entscheidet über den Ausführungsplan einer Query anhand geschätzter Zeilenzahlen, und diese Schätzung stützte sich lange fast ausschließlich auf grobe Index-Statistiken wie Cardinality-Werte. Bei gleichmäßig verteilten Spalten funktioniert das gut, bei schiefen Verteilungen mit wenigen sehr häufigen und vielen seltenen Werten führt dieselbe Schätzmethode regelmäßig zu falschen Plänen. Seit MySQL 8 lassen sich Histogramme über einzelne Spalten pflegen, die dem Optimizer eine deutlich feinere Datengrundlage liefern. Dieser Artikel zeigt, wann klassische Schätzungen versagen, wie Histogramme praktisch eingesetzt werden und wann sie tatsächlich einen messbaren Unterschied machen.
-
10.09.2025
Wer bei einem laufenden Magento-Shop eine Spalte hinzufuegt oder einen Index auf einer Millionen-Zeilen-Tabelle aendert, riskiert lange Tabellensperren und einen sichtbaren Ausfall im Checkout. Eine durchdachte Zero-Downtime-Migration kombiniert declarative Schema-Deployments mit Online-Schema-Change-Tools wie gh-ost und pt-online-schema-change, damit Kunden von Schema-Aenderungen nichts bemerken.
-
10.09.2025
Ein Serverwechsel, ein Hosting-Anbieterwechsel oder eine Konsolidierung mehrerer Docker-Hosts erfordert frueher oder spaeter, einen laufenden Datenbank-Container von einer Maschine auf eine andere zu bringen. Je nach Datenmenge, Toleranz fuer Downtime und Netzwerkverbindung zwischen den Hosts eignen sich logische Dumps, rohe Volume-Kopien per rsync oder ein Replikations-Cutover unterschiedlich gut, mit jeweils eigenen Fallstricken bei Konsistenz und Integritaet.
-
30.08.2025
MySQL bringt mit dem Event Scheduler einen eingebauten Mechanismus mit, um wiederkehrende SQL-Anweisungen direkt im Datenbankserver auszuführen, ganz ohne externen Cron-Daemon. Dieser Artikel zeigt die CREATE-EVENT-Syntax und die verfügbaren Scheduling-Optionen, grenzt den Event Scheduler klar von Magentos eigenem Cron und dem Betriebssystem-Cron ab und erklärt, wie man fehlgeschlagene Events überwacht, bevor sie unbemerkt deaktiviert bleiben.