È stata pubblicata una nuova versione LTS del DBMS MariaDB 12.3

È stata rilasciata la versione 12.3.2 del DBMS MariaDB, contrassegnata come primo rilascio stabile della serie 12.3. La serie MariaDB 12.3 è inclusa nelle versioni con supporto a lungo termine e sarà supportata fino a giugno 2029. È disponibile anche il rilascio di MariaDB 13.0.1, che ha lo stato di candidato ai rilasci.

Il progetto MariaDB si sviluppa come un fork di MySQL, mantenendo la retrocompatibilità e caratterizzandosi per l'integrazione di motori di archiviazione aggiuntivi e funzionalità avanzate. Lo sviluppo di MariaDB è supervisionato da un'organizzazione indipendente, la MariaDB Foundation, secondo un processo di sviluppo aperto e trasparente, non dipendente da singoli fornitori. MariaDB è fornito al posto di MySQL in molte distribuzioni di Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) ed è implementato in grandi progetti come Wikipedia, Google Cloud SQL e Nimbuzz.

Tra le modifiche nella serie MariaDB 12.3 rispetto all'ultima versione LTS MariaDB 11.8:

  • La realizzazione del log binario (binlog) è stata completamente rifatta, con i principali componenti trasferiti nel motore InnoDB. Questo spostamento ha permesso di eliminare la logica di sincronizzazione obsoleta, accelerare la replica e migliorare le prestazioni delle operazioni legate alla scrittura dei dati. Durante i test della nuova implementazione su sistemi ad alta capacità di carico, è stato registrato un aumento delle prestazioni fino a 4 volte per un elevato numero di operazioni di scrittura. Per attivarla, è stata proposta l'impostazione "binlog_storage_engine=innodb".
  • La velocità della ricerca vettoriale utilizzando il tipo VECTOR, impiegato nei sistemi di apprendimento automatico, è aumentata del 30-50%. L'accelerazione è ottenuta grazie all'ottimizzazione dei calcoli nella ricerca di somiglianza tra vettori in spazi multidimensionali e all'implementazione di una nuova tecnica di estrapolazione basata su rappresentazioni vettoriali nidificate (matryoshka embedding).
  • Sono state aggiunte funzionalità per semplificare la migrazione da database Oracle. In modalità compatibilità con il database Oracle sono state implementate le funzioni TO_NUMBER (conversione di stringa in numero), TO_DATE (conversione di stringa in data) e TRUNC (troncamento della data, ad esempio, all'ora, giorno, mese, anno). È inoltre stata aggiunta la supporto per gli array associativi (INDEX BY) e la sintassi «( + )» per definire i join esterni.
  • Per migliorare la compatibilità con MySQL è stato aggiunto il plugin di autenticazione caching_sha2_password, che utilizza l'algoritmo di hashing SHA2 anziché SHA1 ed è compatibile con il plugin omonimo di MySQL 9.
  • È stato aggiunto un nuovo tipo XMLTYPE per memorizzare i dati in formato XML.
  • È stata implementata la possibilità di utilizzare cursori con query parametriche (prepared statement).
  • È stata aggiunta l'espressione «SET PATH» per definire l'ordine di ricerca dei componenti dello schema di archiviazione quando si fa riferimento ad essi senza specificare il nome dello schema.
  • È stato implementato il supporto per l'operazione «IS JSON» per verificare il tipo di espressione JSON, come definito nello standard SQL:2023.
  • Nell'espressione «PARTITION BY KEY» è stato implementato il supporto per gli algoritmi di hashing MYSQL51, MYSQL55, BASE31, CRC32C, XXH32 e XXH3.
  • Nel motore di archiviazione Aria è implementata una cache segmentata delle chiavi, nella quale le chiavi vengono suddivise in gruppi, memorizzati in segmenti separati della cache. La nuova cache ha migliorato le prestazioni dell'esecuzione parallela delle query da parte di diversi utenti. Il numero di segmenti è impostato tramite la variabile aria_pagecache_segments, che può assumere valori da 1 (predefinito) a 128.
  • È stata aggiunta la possibilità di utilizzare indici basati su funzioni (functional index) per migliorare le prestazioni delle operazioni GROUP/ORDER BY.
  • È stato implementato il supporto per l'espressione «CREATE GLOBAL TEMPORARY TABLE» per creare tabelle temporanee globali. Queste tabelle temporanee vengono rimosse al termine della sessione e sono visibili a tutti gli utenti, ma contengono dati specifici per ogni utente.
  • Aggiunto supporto per SSL-chiavi protette da password. La password per sbloccare i certificati SSL può essere impostata tramite la variabile ssl_passphrase o manualmente all'avvio. server.
  • È stata aggiunta l'espressione «SET SESSION AUTHORIZATION» per eseguire azioni come un altro utente, previa concessione delle relative autorizzazioni (l'espressione può essere considerata analoga a «sudo» per i DBMS).
  • Nel plugin file_key_management.so è stata aggiunta la supporto per gli hash SHA-2.
  • È stata aggiunta la supporto per le variabili cursore deboli (weak cursor variable) di tipo predefinito SYS_REFCURSOR, che permettono di restituire un cursore da procedure memorizzate (nel parametro OUT) o da funzioni (nell'espressione RETURN). Per limitare il numero massimo di cursori aperti contemporaneamente, è stata aggiunta la variabile di sistema «max_open_cursors».
  • Nel tipo TO_CHAR è stata aggiunta la supporto per il formato FM (Fill Mode) per escludere il riempimento aggiuntivo. Ad esempio, la query
    «SELECT CONCAT(‘/’, TO_CHAR(‘2020-01-06 10:11:12’, ‘FMDAY’), ‘/’);» restituirà «/Lunedì/» invece di «/Lunedì /».
  • Nell'utilità mariadb-check e nell'espressione CHECK TABLE è stata aggiunta la supporto per le tabelle del motore SEQUENCE.
  • Nell'ottimizzatore è stata aggiunta la supporto per le opzioni (hint) che influenzano la costruzione del piano di ottimizzazione: QB_NAME, NO_RANGE_OPTIMIZATION, NO_ICP, MRR, NO_MRR, BKA, NO_BKA, BNL, NO_BNL, SEMIJOIN, SUBQUERY, JOIN_FIXED_ORDER, JOIN_ORDER, JOIN_PREFIX, JOIN_SUFFIX, MAX_EXECUTION_TIME, [NO_]JOIN_INDEX, [NO_]GROUP_INDEX, [NO_]ORDER_INDEX, [NO_]INDEX, [NO_]SPLIT_MATERIALIZED, NO_ROWID_FILTER, INDEX_MERGE/NO_INDEX_MERGE, [NO_]DERIVED_CONDITION_PUSHDOWN e [NO_]MERGE. Le opzioni vengono inserite nella query in un formato compatibile con MySQL, ad esempio:

    SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE …;
    SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM t1 INNER JOIN t2 WHERE …;

  • Migliorata la performance delle espressioni non ordinate 'LEFT JOIN' e della scansione ordinata utilizzando l'espressione 'PARTITION BY RANGE'.
  • Nei risultati del tracing dell'ottimizzatore, è fornita la visualizzazione delle definizioni
    di tabelle e viste.
  • Nell'esecuzione delle operazioni di fusione delle tabelle (JOIN) è stata implementata un'ottimizzazione che considera l'unicità delle righe nelle sottoquery con l'espressione 'GROUP BY' per una previsione più accurata del numero delle righe risultanti (out_rows) e per un'applicazione corretta degli indici.
  • Migliorata la scalabilità dei blocchi MDL (Metadata Lock).
  • Aggiunta la supporto per nuove funzioni GIS (Geographic Information System):
    ST_Validate, MBRCoveredBy, ST_Simplif, ST_GeoHash, ST_LatFromGeoHash, ST_LongFromGeoHash, ST_PointFromGeoHash, ST_IsValid, ST_Collect.
  • Aggiunto il supporto per i trigger che si attivano per più eventi. Nell'espressione CREATE TRIGGER ora è possibile elencare gli eventi a cui si applica, utilizzando la sintassi '{ event [ OR … ] }'.
  • Nel plugin per la registrazione dell'audit è stata aggiunta la supporto per la buferizzazione delle operazioni di scrittura nel log. La dimensione del buffer è impostata tramite la variabile server_audit_file_buffer_size.
    È stato implementato il salvataggio nei log di audit delle informazioni sulle porte di rete per le connessioni in entrata (in precedenza veniva visualizzato solo l'host).
  • Nell'utilità mariadb è stata aggiunta l'opzione «—script-dir» per specificare una directory alternativa per la ricerca degli script eseguiti con il comando SOURCE.
  • È consentito l'uso della replica in modalità parallela durante la replica asincrona dei dati tra due cluster Galera.
  • Nell'utilità mariadb-dump è stata aggiunta la possibilità di specificare delle maschere (ad esempio, «database_*»), utilizzando l'opzione «-L» (—wildcards).
  • Rimossa l'esigenza di unicità degli identificatori delle chiavi esterne (foreign key) nel contesto dell'intero DB (è sufficiente l'unicità a livello di tabella).
  • Rimossi i limiti sul livello di annidamento delle strutture nelle funzioni per la gestione dei JSON (rimosso il limite JSON_DEPTH_LIMIT, che precedentemente accettava un valore di 32).
  • Aggiunta la tabella TRIGGERED_UPDATE_COLUMNS nello schema INFORMATION_SCHEMA (INFORMATION_SCHEMA.TRIGGERED_UPDATE_COLUMNS), che mostra le colonne modificate all'attivazione del trigger.
  • Nella tabella PARAMETERS nello schema INFORMATION_SCHEMA è stata implementata la colonna PARAMETER_DEFAULT, che contiene i valori predefiniti dei parametri delle procedure memorizzate.
  • Rimosse le variabili big_tables, large_page_size e storage_engine, precedentemente dichiarate obsoleti.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster