Accés clients

Tornar

MariaDB 11.8: què canvia realment

MariaDB 11.8: què canvia realment

MariaDB 11.8 arriba amb millores importants de rendiment, optimització i compatibilitat, a més de noves funcionalitats SQL i canvis interns que convé conèixer.

La nova versió incorpora millores importants de rendiment, optimització, compatibilitat i noves funcionalitats SQL. I encara que per a la majoria de webs modernes no suposarà cap problema, sí que hi ha alguns canvis que convé revisar si treballes amb desenvolupaments personalitzats o aplicacions antigues.

Especialment si el teu projecte depèn molt de consultes SQL avançades, collations específiques, procediments emmagatzemats o lògica heretada.

La bona notícia és que, en la majoria de casos, no hauràs de tocar res.

La menys bona: si tens codi molt antic o molt optimitzat “a mà”, sí que val la pena fer algunes comprovacions.

A qui pot afectar aquesta actualització de MariaDB?

Si utilitzes un WordPress actualitzat juntament amb plugins i temes habituals, pots estar força tranquil/a.

El normal és que tot segueixi funcionant exactament igual després de l’actualització.

Els casos on sí que recomanem revisar el comportament són:

  • aplicacions antigues o sense manteniment
  • desenvolupaments fets a mida
  • integracions directes amb MariaDB
  • queries SQL complexes
  • configuracions antigues de charset o collation
  • triggers i procediments emmagatzemats
  • sistemes amb replicació o integracions externes

Dit d’una altra manera: com més personalitzat estigui el projecte, més recomanable és validar alguns punts.

El canvi més important: utf8mb4 passa a ser el charset per defecte ⚠️

Un dels canvis més rellevants de MariaDB 11 és que el charset per defecte deixa de ser latin1 i passa a ser utf8mb4.

I sí: això importa més del que sembla.

Per què pot afectar?

Perquè moltes aplicacions antigues mai van definir explícitament el charset de les seves taules o columnes.

Simplement, assumien el valor per defecte del servidor.

Amb MariaDB 11 això canvia.

Què pot començar a comportar-se diferent?

Principalment:

  • comparacions de text
  • cerca
  • ordenacions (ORDER BY)
  • agrupacions (GROUP BY)
  • igualtat entre cadenes
  • tractament de caràcters especials o emojis

En alguns projectes això no tindrà cap impacte.

En altres, especialment aplicacions antigues o multillenguatge, sí que pot provocar diferències visibles.

Llavors, què convé revisar?

Especialment:

  • taules creades fa anys
  • columnes sense charset explícit
  • aplicacions que barregin diferents collations
  • lògica dependent de l’ordre exacte de resultats

Si vols mantenir un comportament concret, el recomanable és definir explícitament charset i collation en taules i columnes.

També canvia la collation Unicode per defecte

MariaDB 11.8 utilitza ara uca1400_ai_ci com a collation Unicode per defecte.

Traduït al món real: algunes comparacions i ordenacions de text poden comportar-se de manera lleugerament diferent.

On sol notar-se?

Sobretot en:

  • aplicacions multillenguatge
  • cerca interna
  • filtres textuals
  • sistemes amb ordenacions complexes
  • comparacions entre caràcters Unicode

Per exemple, cadenes que abans es consideraven “iguals” podrien deixar de ser-ho, o viceversa.

No és res dramàtic, però sí recomanable revisar si la teva aplicació depèn molt de cerques o comparacions textuals.

Les queries poden canviar de comportament (encara que funcionin millor)

MariaDB 11 incorpora bastantes millores en l’optimitzador SQL.

I això, en general, és una bona notícia.

Moltes consultes passen a executar-se de manera més eficient gràcies a nous criteris d’optimització i índexs més intel·ligents.

El problema és que, en alguns casos, el pla d’execució pot canviar respecte a versions anteriors.

Quin tipus de consultes convé revisar?

Especialment:

  • UPDATE i DELETE amb subconsultes
  • queries amb:
    • DATE()
    • YEAR()
    • SUBSTR()
    • UCASE()
  • taules particionades
  • columnes virtuals
  • consultes molt optimitzades manualment

MariaDB ara pot utilitzar índexs en situacions on abans no podia.

Normalment això millora el rendiment.

Però si la teva aplicació depenia d’un comportament molt concret de l’optimitzador, convé validar-ho.

La recomanació més assenyada

Revisar consultes crítiques utilitzant:

EXPLAIN

sobretot si el projecte té molta càrrega o lògica SQL avançada.

Els triggers i procediments emmagatzemats ara són més estrictes

Un altre punt important: MariaDB 11 endureix algunes validacions internes relacionades amb rutines, triggers i funcions emmagatzemades.

Què significa això?

Que certs procediments antics, SQL dinàmic o sintaxi poc estàndard podrien començar a donar problemes al recrear-se o validar-se.

A més, els triggers UPDATE ara poden executar-se únicament quan canvien determinades columnes.

Això obre noves possibilitats, però també pot canviar comportaments en alguns sistemes heretats.

Hauries de preocupar-te?

Només si utilitzes:

  • procediments emmagatzemats complexos
  • triggers personalitzats
  • SQL dinàmic
  • lògica antiga mantinguda des de fa anys

En aplicacions modernes o CMS habituals, això rarament suposa un problema.

Algunes variables antigues desapareixen o queden deprecated

Com passa en gairebé qualsevol salt important de versió, MariaDB 11 elimina part de la compatibilitat heretada.

Algunes variables ja eliminades

  • old_alter_table
  • wsrep_load_data_splitting
  • variables antigues de OQGraph

Variables deprecated

  • tx_isolation
  • spider_casual_read

Què hauries de revisar

Sobretot:

  • scripts d’automatització
  • configuracions personalitzades
  • eines internes
  • desplegaments antics

Moltes vegades el problema no està en l’aplicació web, sinó en scripts oblidats que segueixen utilitzant sintaxi antiga.

MariaDB 11 també porta millores interessants

No tot són compatibilitats i revisions 😄

La nova versió també afegeix funcionalitats força potents.

Noves funcions UUID

Ara pots utilitzar:

UUID_v4()
UUID_v7()

directament des de MariaDB.

Millores en JSON

MariaDB segueix millorant força el suport JSON amb funcions com:

  • JSON_SCHEMA_VALID()
  • JSON_ARRAY_INTERSECT()
  • JSON_OBJECT_FILTER_KEYS()

molt útils en aplicacions modernes i APIs.

Funcions vectorials i cerca semàntica

Sí: MariaDB també comença a entrar en el món IA.

La nova versió incorpora:

  • tipus vectorials
  • índexs vectorials
  • funcions de similitud

orientades a cerques semàntiques i aplicacions modernes relacionades amb embeddings o IA.

Llavors… hauries de fer alguna cosa?

Per a la majoria dels projectes: probablement no.

Si utilitzes aplicacions modernes, CMS habituals o programari actualitzat, el normal és que la migració sigui completament transparent.

On sí que recomanem revisar és en projectes:

  • antics
  • molt personalitzats
  • amb SQL avançat
  • amb lògica heretada
  • amb integracions directes contra MariaDB

En aquests casos, val la pena validar:

  • collations
  • queries crítiques
  • triggers
  • procediments emmagatzemats
  • configuracions antigues

Si vols anar sobre segur, una bona pràctica és provar prèviament l’aplicació en entorns staging abans de l’actualització definitiva, especialment en projectes crítics o amb molt desenvolupament a mida.

Tenim solucions per a tothom