MariaDB-Update bei cdmon

MariaDB-Update bei cdmon

Bei cdmon aktualisieren wir die MariaDB-Version auf unseren Servern auf die Version 10.11. Dieses Update verbessert die Datenbankleistung und -sicherheit, führt aber auch einige Änderungen ein, die bestimmte Anwendungen oder Abfragen betreffen können.

Das Update wird schrittweise auf allen cdmon-Servern durchgeführt. Irgendwann in den frühen Morgenstunden kann es zu einer kurzen Unterbrechung von etwa 15 Minuten kommen. In den meisten Fällen müssen Sie nichts unternehmen. Wenn Ihre Anwendung oder Website jedoch Datenbanken verwendet, empfehlen wir, deren Funktion nach dem Update zu überprüfen, um sicherzustellen, dass alles weiterhin korrekt funktioniert.

Nachfolgend finden Sie eine Zusammenfassung der wichtigsten Änderungen und Updates, die in dieser neuen MariaDB 10.11-Version eingeführt wurden. Diese Änderungen können Ihre Anwendung betreffen, je nachdem, wie sie die Datenbank nutzt.
 
1. Änderungen bei der Datenspeicherung und -formatierung
InnoDB
Der InnoDB-Speicher-Engine hat mehrere Änderungen erfahren, die das Verhalten von Tabellen und gespeicherten Daten beeinflussen können:
  • Das InnoDB-Dateiformat ist jetzt immer Barracuda (zuvor konnte es "Antelope" sein).
  • Die Variable innodb_large_prefix wurde entfernt, sodass Schlüssel in InnoDB-Tabellen immer die maximal mögliche Länge verwenden.
  • Die Option innodb_file_format wurde entfernt.
Hinweis: Wenn Sie zuvor das "Antelope"-Format verwendet haben und Ihre Tabellen lange Zeilen oder Indizes mit großen Präfixen enthielten, können Unterschiede bei der Speicherung oder Leistung auftreten. Obwohl die meisten Anwendungen nicht betroffen sein werden, wird empfohlen, Tabellen zu überprüfen, die möglicherweise von den Einschränkungen des vorherigen Formats abhängig waren. Wenn Ihre Anwendung außerdem versucht, Daten einzufügen, die gegen InnoDB-Beschränkungen verstoßen (wie doppelte Schlüssel oder Daten, die die zulässige Größe überschreiten), wurde dies möglicherweise zuvor nur als Warnung ausgegeben.

Zeitstempel und Datumsangaben (DATETIME)
Die Datentypen für Datum und Uhrzeit wurden aktualisiert, um die Präzision zu verbessern:
  • Datumsangaben enthalten jetzt standardmäßig Millisekunden.
  • Wenn Ihre Anwendung Datumsangaben ohne Millisekunden erwartet, muss sie möglicherweise angepasst werden.
Hinweis: Wenn Ihre Anwendung Datums- und Zeitangaben ohne Berücksichtigung von Millisekunden vergleicht, können Unstimmigkeiten auftreten. Beispielsweise kann eine Abfrage, die zuvor 2025-03-06 11:48:21 verglichen hat, jetzt andere Ergebnisse liefern, wenn gespeicherte Zeitstempel Millisekunden enthalten, wie z. B. 2025-03-06 11:48:21.123.

JSON
JSON-bezogene Funktionen wurden verbessert, um mehr Flexibilität zu bieten und Fehler zu beheben:
  • Die Funktion JSON_TABLE() erlaubt jetzt Spaltennamen mit Sonderzeichen in Anführungszeichen.
  • Fehler in JSON_VALID() und JSON_QUERY() wurden behoben, was sich auf JSON-Validierungen in Ihrer Anwendung auswirken kann.
Hinweis: Wenn Ihre Anwendung JSON_TABLE() zur Extraktion von JSON-Daten verwendet und zuvor Spaltennamen mit Sonderzeichen aufgrund von Einschränkungen vermieden hat, können Sie diese jetzt direkt verwenden. Diese Änderung erleichtert die Manipulation von JSON-Daten mit komplexeren Strukturen.

2. Änderungen bei der Ausführung von SQL-Abfragen
ORDER BY und LIMIT
Es wurden Optimierungen bei der Ausführung von Abfragen implementiert, die ORDER BY zusammen mit LIMIT verwenden:
  • Verbesserte Optimierung: MariaDB hat die Optimierung von ORDER BY ... LIMIT verbessert, was die Reihenfolge der Ergebnisse ändern kann, wenn keine explizite ORDER BY-Klausel verwendet wird. Wenn Ihre Abfragen von einer bestimmten Reihenfolge abhängen, stellen Sie sicher, dass sie immer eine definierte ORDER BY-Klausel enthalten.
Beispiel: Wenn kein ORDER BY angegeben wird, kann die Ergebnismenge zwischen verschiedenen Ausführungen aufgrund interner Optimierungen variieren. Um eine konsistente Reihenfolge zu gewährleisten, ist es unerlässlich, die ORDER BY-Klausel anzugeben. Beispielbefehl: SELECT * FROM mitarbeiter ORDER BY einstellungsdatum DESC LIMIT 10;

SQL-Funktionen
Einige SQL-Funktionen wurden aktualisiert, um die Kompatibilität zu erweitern und Fehler zu beheben:
  • Die Funktionen GREATEST() und LEAST() funktionieren jetzt korrekt mit Datums- und Zeitwerten (DATETIME und TIMESTAMP).
  • Fehler in Funktionen wie REPLACE(), LOCATE() und anderen zeichenkettenbezogenen Funktionen wurden behoben.
Beispiel: Wenn Sie zwei Datumsspalten haben und das aktuellste Datum pro Zeile abrufen möchten, können Sie verwenden: SELECT GREATEST(startdatum, enddatum) AS neuestes_datum FROM projekte;
Zuvor hätte dies zu unerwarteten Ergebnissen oder Fehlern führen können, aber mit dem Update verarbeitet die Funktion diese Datentypen korrekt.

GROUP BY
Die Auswertung von Bedingungen in Abfragen mit GROUP BY hat sich geändert:
  • Bedingungen in HAVING werden jetzt vor der Gruppierung ausgewertet.
  • Dies kann die Ergebnisse von Abfragen ändern, die GROUP BY verwenden.
Hinweis: Es ist wichtig sicherzustellen, dass die Bedingung in HAVING logisch und mit den tatsächlichen Daten abgestimmt ist, da die Auswertung vor der Gruppierung Datensätze vor der Zählung filtern und so das erwartete Ergebnis verändern kann.

Wir empfehlen, Ihre Anwendungen zu überprüfen und nach dem Update Tests durchzuführen, um den korrekten Betrieb sicherzustellen. Wenn Sie Fragen haben oder Unterstützung benötigen, steht Ihnen unser Support-Team gerne zur Verfügung.

Für detailliertere Informationen zum Upgrade von früheren Versionen können Sie die folgenden offiziellen MariaDB-Links konsultieren:

Für weitere Informationen können Sie uns kontaktieren.