Dopo un anno di sviluppo e quattro versioni preliminari il primo rilascio stabile della nuova versione del DBMS , nell'ambito della quale si sviluppa un fork di MySQL, mantenendo la compatibilità retroattiva e con l'integrazione di motori di archiviazione aggiuntivi e funzionalità avanzate. Il supporto per il nuovo ramo sarà fornito per 5 anni, fino a giugno 2025.
Lo sviluppo di MariaDB è curato dall'organizzazione indipendente MariaDB Foundation, seguendo un processo di sviluppo completamente aperto e trasparente, indipendente dai singoli fornitori. MariaDB è fornita al posto di MySQL in molte distribuzioni Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) ed è implementata in progetti di grande rilievo come , e .
Chiave :
- È stato aggiunto il motore di archiviazione , che consente di posizionare le tabelle di MariaDB in Amazon S3 o in qualsiasi altro archivio cloud pubblico o privato che supporti l'API S3. È supportato il posizionamento in S3 sia di tabelle normali che partizionate. Quando si archivia nel cloud tabelle partizionate, esse possono essere utilizzate direttamente anche da un altro server con accesso all'archiviazione S3.
- È stato aggiunto il motore di archiviazione , che memorizza i dati legati alle colonne e utilizza InfiniDB ColumnStore memorizza i dati non riga per riga, ma per colonne, consentendo di ottimizzare l'esecuzione di raggruppamenti su colonne di database di grandi dimensioni, comprendenti petabyte di dati. Supporta il dimensionamento lineare, l'archiviazione dei dati in forma compressa, la partizione verticale e orizzontale, e l'esecuzione efficace di query concorrenti.
Tutti i file eseguibili che iniziano con la parola «mysql» sono stati rinominati utilizzando la parola «mariadb». I vecchi nomi sono mantenuti come collegamenti simbolici. - È stato aggiunto un nuovo tipo di dato
- INET6 È stato effettuato un lavoro di suddivisione dei privilegi in componenti più piccole. Invece del privilegio generale SUPER, è stata proposta una serie di privilegi selettivi «BINLOG ADMIN»,
- «BINLOG REPLAY»,
«CONNECTION ADMIN»,
«FEDERATED ADMIN»,
«READ_ONLY ADMIN»,
«REPLICATION MASTER ADMIN»,
«REPLICATION SLAVE ADMIN» e
«SET USER».
Il privilegio «REPLICATION CLIENT» è stato rinominato in «BINLOG MONITOR», e l'espressione «SHOW MASTER STATUS» in «SHOW BINLOG STATUS». La rinomina chiarisce il comportamento e non è legata alla correttezza politica; il progetto non rinuncia ai termini master/slave e ha persino aggiunto nuovi privilegi «MASTER ADMIN» e «SLAVE ADMIN». Inoltre, nell'SQL è stata aggiunta una nuova chiave «REPLICA», sinonimo di «SLAVE». - Per alcune espressioni sono stati modificati i privilegi richiesti per la loro esecuzione. «SHOW BINLOG EVENTS» ora richiede i diritti «BINLOG MONITOR» anziché «REPLICATION SLAVE», «SHOW SLAVE HOSTS» richiede il privilegio «REPLICATION MASTER ADMIN» anziché «REPLICATION SLAVE», «SHOW SLAVE STATUS» richiede i diritti «REPLICATION SLAVE ADMIN» o «SUPER» anziché «REPLICATION CLIENT», «SHOW RELAYLOG EVENTS» richiede i diritti «REPLICATION SLAVE ADMIN» anziché «REPLICATION SLAVE».
- Sono state aggiunte le costruzioni «
- INSERT … RETURNING» e «INSERT INTO t2 VALUES (1,’Dog’),(2,’Lion’),(3,’Tiger’),(4,’Leopard’)
RETURNING id2,id2+id2,id2&id2,id2||id2;
| id2 | id2+id2 | id2&id2 | id2||id2 |
+——+———+———+———-+
Sono state aggiunte le espressioni «
+——+———+———+———-+
| 1 | 2 | 1 | 1 |
| 2 | 4 | 2 | 1 |
| 3 | 6 | 3 | 1 |
| 4 | 8 | 4 | 1 |
+——+———+———+———-+ - EXCEPT ALL» e «È stata introdotta la possibilità di specificare commenti all'interno dei blocchi «CREATE DATABASE» e «ALTER DATABASE».
- Sono state aggiunte costruzioni per rinominare indici e colonne «
- ALTER TABLE … RENAME INDEX / KEY» e ««.
- Per gli indici in «CREATE TABLE» è stato implementato l'attributo «
- VISIBLE«.
- È stata aggiunta l'espressione «CYCLE» per identificare i cicli ricorsivi .
- Sono state aggiunte le funzioni e per restituire un array o un oggetto JSON con i valori della colonna specificata.
- Sono state aggiunte tabelle informative di sistema (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS e THREAD_POOL_WAITS) per il pool di thread (thread_pool).
- L'espressione ANALYZE è stata ampliata per mostrare il tempo impiegato per verificare il blocco WHERE e per eseguire operazioni ausiliarie.
- Nell'ottimizzatore di elaborazione dei range sono stati considerati i criteri «IS NOT NULL»
- È stato notevolmente ridotto il numero di file temporanei utilizzati durante l'ordinamento con i tipi VARCHAR, CHAR e BLOB.
- In , utilizzato per gestire la replica, ha aggiunto nuovi campi di metadati, includendo Primary Key, Column Name, Character Set e Geometry Type. Nello strumento mariadb-binlog e nei comandi «SHOW BINLOG EVENTS» e «SHOW RELAYLOG EVENTS» è stata garantita la visualizzazione dei flag di replica.
- Struttura ora elimina in modo affidabile tabelle che rimangono nel motore di archiviazione anche in assenza di file «.frm» o «.par».
- È stata implementata una versione accelerata dell'algoritmo crc32() per CPU AMD64, ARMv8 e POWER 8.
- Modificate alcune impostazioni predefinite. Il parametro innodb_encryption_threads è stato aumentato a 255 e il valore di max_sort_length è stato incrementato da 4 a 8.
- Sono state introdotte numerose ottimizzazioni delle prestazioni per il motore InnoDB.
- Nel meccanismo di replica multi-master sincrona Galera è stata aggiunta la piena supporto del (Global Transaction ID), identificatori di transazione unici per tutti i nodi del cluster.
- È avvenuto il passaggio a una nuova versione della libreria (Perl Compatible Regular Expressions), al posto della classica serie PCRE 8.x.
- Sono state proposte nuove versioni dei collegamenti per connettersi ai database MariaDB e MySQL da programmi scritti in Python e C: e . Il collegamento per Python è conforme a Python DB API 2.0, scritto in C e utilizza la libreria Connector/C per connettersi al server.
Fonte: opennet.ru
