A cdmon estem actualitzant la versió de MariaDB als nostres servidors, passant a la versió 10.11. Aquesta actualització millora el rendiment i la seguretat de les bases de dades, però també introdueix alguns canvis que poden afectar determinades aplicacions o consultes.

 

L’actualització es farà de manera progressiva a tots els servidors de cdmon. En algun moment de la matinada, es podria produir un tall d’uns 15 minuts. En la majoria dels casos, no cal que faci res. Així i tot, si la seva aplicació o pàgina web utilitza bases de dades, li recomanem revisar-ne el funcionament després de l’actualització per assegurar-se que tot continua funcionant correctament.

 

A continuació, li mostrem un resum dels principals canvis i actualitzacions que introdueix aquesta nova versió de MariaDB 10.11. Aquests canvis poden afectar la seva aplicació depenent de com utilitzi la base de dades.

 

1. Canvis en l’emmagatzematge i el format de dades

InnoDB

El motor d’emmagatzematge InnoDB ha experimentat modificacions que poden influir en el comportament de les taules i dades emmagatzemades:

  • El format dels fitxers InnoDB ara és sempre Barracuda (abans podia ser "Antelope").

  • S’elimina la variable innodb_large_prefix, de manera que les claus a les taules InnoDB sempre utilitzen la longitud màxima possible.

  • L’opció innodb_file_format ha estat eliminada.

Nota: Si anteriorment utilitzava el format "Antelope" i les seves taules incloïen files llargues o índexs amb prefixos grans, és possible que experimenti diferències en l’emmagatzematge o el rendiment. Tot i que la majoria d’aplicacions no se’n veuran afectades, és recomanable revisar les taules que puguin haver depès de les limitacions del format anterior. Addicionalment, si la seva aplicació intenta inserir dades que violen restriccions d’InnoDB, com claus duplicades o dades que excedeixen la mida permesa, anteriorment això podria haver generat un avís.

 

Timestamps i Dates (DATETIME)

Els tipus de dades relacionats amb dates i hores han estat actualitzats per millorar la precisió:

  • Ara les dates inclouen mil·lisegons per defecte.

  • Si la seva aplicació espera dates sense mil·lisegons, pot necessitar adaptar-la.

Nota: Si la seva aplicació fa comparacions de dates i hores sense tenir en compte els mil·lisegons, podria trobar discrepàncies. Per exemple, una consulta que abans comparava 2025-03-06 11:48:21 ara podria retornar resultats diferents si les marques de temps emmagatzemades inclouen mil·lisegons, com 2025-03-06 11:48:21.123

 

JSON

Les funcions relacionades amb JSON han estat millorades per oferir més flexibilitat i corregir errors:

  • La funció JSON_TABLE() ara permet noms de columna amb caràcters especials entre cometes.

  • S’han corregit errors a JSON_VALID() i JSON_QUERY(), cosa que pot afectar les validacions JSON a la seva aplicació.

Nota: Si la seva aplicació utilitza JSON_TABLE() per extreure dades JSON i anteriorment evitava noms de columna amb caràcters especials per restriccions, ara els pot utilitzar directament. Aquest canvi facilita la manipulació de dades JSON amb estructures més complexes

 

2. Canvis en l’execució de consultes SQL

ORDER BY y LIMIT

S’han implementat optimitzacions en l’execució de consultes que utilitzen ORDER BY juntament amb LIMIT:

  • Optimització millorada: MariaDB ha millorat l’optimització de ORDER BY ... LIMIT, cosa que pot canviar l’ordre dels resultats si no s’utilitza una clàusula ORDER BY explícita. Si les seves consultes depenen d’un ordre específic, asseguri’s que sempre inclouen un ORDER BY definit.

Ejemplo: Si no s’especifica un ORDER BY, el conjunt de resultats podria variar entre execucions a causa de les optimitzacions internes. Per garantir un ordre consistent, és essencial especificar la clàusula ORDER BY, com per exemple: SELECT * FROM empleados ORDER BY fecha_contratacion DESC LIMIT 10;

 

Funcions SQL

Algunes funcions SQL han estat actualitzades per ampliar-ne la compatibilitat i corregir errors:

  • Les funcions GREATEST() i LEAST() ara funcionen correctament amb dates i hores (DATETIME i TIMESTAMP).

  • S’han corregit errors en funcions com REPLACE(), LOCATE(), i altres funcions de cadenes de text.

Exemple: Si té dues columnes de dates i vol obtenir la més recent per fila, pot utilitzar: SELECT GREATEST(fecha_inicio, fecha_fin) AS fecha_mas_reciente FROM proyectos;

Anteriorment, això podria haver produït resultats inesperats o errors, però amb l’actualització, la funció gestiona correctament aquests tipus de dades.

 

GROUP BY

L’avaluació de condicions en consultes que utilitzen GROUP BY ha canviat:

  • Las condiciones en HAVING ahora se evalúan antes de agrupar.

  • Esto puede modificar los resultados de consultas que usen GROUP BY.

Nota: És important assegurar-se que la condició a HAVING sigui lògica i estigui alineada amb les dades reals, ja que l’avaluació prèvia a l’agrupació podria filtrar registres abans de comptar, alterant el resultat esperat.

 

Li recomanem revisar les seves aplicacions i fer proves després de l’actualització per assegurar el seu correcte funcionament. Si té dubtes o necessita ajuda, el nostre equip de suport està disponible per ajudar-lo.

 

Per obtenir informació més detallada sobre l’actualització des de versions anteriors, pot consultar els següents enllaços oficials de MariaDB:

 

Per a més informació, pots contactar amb nosaltres.