Versione stabile di MariaDB 10.6

Dopo un anno di sviluppo e tre rilasci preliminari, è stata pubblicata la prima release stabile del nuovo ramo del DBMS MariaDB 10.6, all'interno del quale è in fase di sviluppo un ramo di MySQL che mantiene la retrocompatibilità e si distingue per l'integrazione di ulteriori motori di storage e capacità avanzate. Il supporto alla nuova filiale sarà fornito per 5 anni, fino a luglio 2026.

Lo sviluppo di MariaDB è supervisionato dalla MariaDB Foundation, indipendente, seguendo un processo di sviluppo completamente aperto e trasparente, indipendente dai singoli fornitori. MariaDB viene fornito in sostituzione di MySQL in molte distribuzioni Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) ed è stato implementato in progetti di grandi dimensioni come Wikipedia, Google Cloud SQL e Nimbuzz.

Miglioramenti chiave in MariaDB 10.6:

  • È assicurata l’esecuzione atomica delle espressioni “CREATE TABLE|VIEW|SEQUENCE|TRIGGER”, “ALTER TABLE|SEQUENCE”, “RENAME TABLE|TABLES”, “DROP TABLE|VIEW|VIEW|TRIGGER|DATABASE” (sia l’espressione completamente completato o tutto riportato allo stato originale). Nel caso delle operazioni DROP TABLE che cancellano più tabelle contemporaneamente, l'atomicità è garantita a livello di ogni singola tabella. Lo scopo della modifica è garantire l'integrità in caso di arresto anomalo del server durante un'operazione. In precedenza, dopo un arresto anomalo, potevano rimanere tabelle e file temporanei, la sincronizzazione delle tabelle nei motori di archiviazione e nei file frm poteva essere interrotta e le singole tabelle potevano rimanere senza nome quando più tabelle venivano rinominate contemporaneamente. L'integrità è garantita dal mantenimento di un registro di ripristino dello stato, il cui percorso può essere determinato tramite la nuova opzione "—log-ddl-recovery=file" (ddl-recovery.log per impostazione predefinita).
  • È stata implementata la costruzione “SELECT...OFFSET...FETCH” definita nello standard SQL 2008 che permette di visualizzare un certo numero di righe a partire da un offset specificato, con la possibilità di utilizzare il parametro “WITH TIES” per allegare un altro valore successivo. Ad esempio, l'espressione "SELECT i FROM t1 ORDER BY i ASC OFFSET 1 ROWS FETCH FIRST 3 ROWS WITH TIES" differisce dalla costruzione "SELECT i FROM t1 ORDER BY i ASC LIMIT 3 OFFSET 1" producendo un ulteriore elemento nella coda (verranno emesse 3 o 4 righe).
  • Per il motore InnoDB è stata implementata la sintassi “SELECT...SKIP LOCKED” che permette di escludere righe per le quali non è possibile impostare un blocco (“LOCK IN SHARE MODE” o “FOR UPDATE”).
  • È stata implementata la possibilità di ignorare gli indici (in MySQL 8 questa funzionalità è chiamata “indici invisibili”). Contrassegnare un indice da ignorare viene effettuato utilizzando il flag IGNORED nell'istruzione ALTER TABLE, dopodiché l'indice rimane visibile e aggiornato, ma non viene utilizzato dall'ottimizzatore.
  • Aggiunta la funzione JSON_TABLE() per convertire i dati JSON in forma relazionale. Ad esempio, un documento JSON può essere trasformato per essere utilizzato nel contesto di una tabella, che può essere specificata all'interno di un blocco FROM in un'istruzione SELECT.
  • Compatibilità migliorata con Oracle DBMS: aggiunto il supporto per sottoquery anonime all'interno del blocco FROM. Costrutto MINUS implementato (equivalente a EXCEPT). Aggiunte le funzioni ADD_MONTHS(), TO_CHAR(), SYS_GUID() e ROWNUM().
  • Nel motore InnoDB, l'inserimento nelle tabelle vuote è stato accelerato. Per impostazione predefinita, il formato della stringa COMPRESSA è impostato sulla modalità di sola lettura. Lo schema SYS_TABLESPACES ha sostituito SYS_DATAFILES e riflette direttamente lo stato nel file system. Viene fornito il supporto di scrittura lazy per il tablespace temporaneo. Il supporto per il vecchio algoritmo di checksum, mantenuto per compatibilità con MariaDB 5.5, è stato interrotto.
  • Nel sistema di replica, la dimensione del valore del parametro master_host è stata aumentata da 60 a 255 caratteri e master_user a 128. La variabile binlog_expire_logs_seconds è stata aggiunta per configurare il tempo di scadenza del log binario in secondi (in precedenza, il tempo di ripristino era determinato solo in giorni tramite la variabile scade_logs_days).
  • Il meccanismo di replica sincrona multimaster Galera implementa la variabile wsrep_mode per configurare i parametri API WSREP (Write Set REPlication). Conversione consentita di Galera da comunicazioni non crittografate a TLS senza arrestare il cluster.
  • È stato implementato lo schema sys-schema, che contiene una raccolta di viste, funzioni e procedure per analizzare le operazioni del database.
  • Aggiunte tabelle di servizio per analizzare le prestazioni della replica.
  • Le viste INFORMAZIONI_SCHEMA.KEYWORDS e INFORMAZIONI_SCHEMA.SQL_FUNCTIONS sono state aggiunte all'insieme di tabelle di informazioni, visualizzando un elenco di parole chiave e funzioni disponibili.
  • I repository TokuDB e CassandraSE sono stati rimossi.
  • La codifica utf8 è stata spostata dalla rappresentazione a quattro byte utf8mb4 (U+0000..U+10FFFF) alla rappresentazione a tre byte utf8mb3 (copre l'intervallo Unicode U+0000..U+FFFF).
  • Aggiunto il supporto per l'attivazione del socket in systemd.
  • Il plug-in GSSAPI ha aggiunto il supporto per i nomi dei gruppi e i SID di Active Directory.
  • Aggiunto controllo della presenza del file di configurazione $MARIADB_HOME/my.cnf oltre a $MYSQL_HOME/my.cnf.
  • Sono state implementate le nuove variabili di sistema binlog_expire_logs_seconds, innodb_deadlock_report, innodb_read_only_compressed, wsrep_mode e Innodb_buffer_pool_pages_lru_freed.

Fonte: opennet.ru

Aggiungi un commento