Dopo un anno di sviluppo e sei 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 per l'integrazione di motori di archiviazione aggiuntivi e funzionalità avanzate. Il supporto per la nuova versione sarà garantito per 5 anni, fino a giugno 2024.
Lo sviluppo di MariaDB è curato da un'organizzazione indipendente, la MariaDB Foundation, secondo un processo di sviluppo completamente aperto e trasparente, non dipendente da singoli fornitori. MariaDB viene 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 :
- Includo la tecnologia di replicazione multi-master sincrona , che consente di utilizzare una topologia active-active multi-master, permettendo lettura e scrittura su qualsiasi nodo. Con la replica sincrona, tutti i nodi contengono sempre dati aggiornati, garantendo l'assenza di transazioni perse, poiché la transazione viene registrata solo dopo la propagazione dei dati a tutti i nodi. La replica avviene in modalità parallela, a livello di righe, trasmettendo solo le informazioni sui cambiamenti;
- Nei sistemi Unix-like, viene utilizzato per impostazione predefinita un plugin di autenticazione , che consente di utilizzare gli account presenti nel sistema per connettersi al DBMS tramite un socket unix locale;
- Aggiunto impostazione della scadenza della password dell'utente, dopo la quale la password viene contrassegnata come scaduta. Per impostare il periodo di validità della password nelle operazioni «CREATE USER» e «ALTER USER» è stata aggiunta l'espressione «PASSWORD EXPIRE INTERVAL N DAY»;
- Aggiunto supporto per degli utenti del DBMS tramite l'espressione «ACCOUNT LOCK» nelle operazioni «CREATE USER» e «ALTER USER»;
- Notevolmente accelerata l'esecuzione del controllo dei privilegi in configurazioni con un grande numero di utenti o regole di accesso;
- l'uso delle tabelle mysql.user e mysql.host. Per memorizzare gli account e i privilegi globali, ora viene utilizzata la tabella mysql.global_priv;
- In autenticazione supporto per l'espressione «SET PASSWORD»;
- possibilità di utilizzare più di un plugin di autenticazione per ciascun account, utile per la transizione graduale degli utenti a un plugin . Durante la creazione dell'utente root@localhost con lo script mysql_install_db, ora vengono inclusi di default due plugin di autenticazione — unix_socket e mysql_native_password;
- Nel motore di archiviazione InnoDB è stata implementata l'operazione di eliminazione immediata delle colonne (ALTER TABLE … DROP COLUMN … ALGORITHM=INSTANT) e la modifica dell'ordine delle colonne. È stata ridotta la dimensione del log di rollback iniziale (redo log). È stato aggiunto il supporto per la rotazione delle chiavi per innodb_encrypt_log. È stato implementato l'algoritmo di verifica dei checksum
innodb_checksum_algorithm=full_crc32. Sono state garantite l'espansione immediata del tipo VARCHAR e la modifica della codifica del testo per le colonne non indicizzate; - Ottimizzatore migliorato. È stata aggiunta la possibilità di tracciare l'ottimizzatore, attivabile tramite la variabile di sistema . Per impostazione predefinita statistiche indipendenti dai motori di archiviazione.
Due nuove modalità use_stat_tables sono state introdotte: COMPLEMENTARY_FOR_QUERIES e PREFERABLY_FOR_QUERIES. Attivata la modalità optimize_join_buffer_size. Aggiunti nuovi rowid_filter e condition_pushdown_from_having; - Sostenuta l'estensione delle tabelle versionate di sistema, che non solo memorizzano un'istantanea attuale dei dati, ma conservano anche informazioni su tutte le modifiche precedentemente apportate, attraverso con intervalli di tempo;
- Introdotta un nuovo comando 'FLUSH SSL' per ricaricare i certificati SSL senza riavviare il server;
- Nell'operazione 'INSTALL PLUGIN', 'UNINSTALL PLUGIN' e 'UNINSTALL SONAME' è stata aggiunta la compatibilità con le espressioni 'IF NOT EXISTS' e 'IF EXISTS';
- Proposte tabelle di sistema resistenti ai crash, per le quali viene utilizzato il motore ;
- Transizione all'uso dello standard C++11 (utilizzate operazioni atomiche);
- Significativo aumento delle prestazioni delle proprietà locali 'Collation' per Unicode, che consentono di definire regole di ordinamento e metodi di confronto basati sul significato dei caratteri;
- plugin per la definizione di tipi di campo personalizzati;
- Aggiunta supporto per funzioni UDF (User-Defined Functions);
- Nell'operazione 'FLUSH TABLES' modalità «BACKUP LOCK», che può essere utilizzata durante il backup dei file del database;
- supporto per comandi server che iniziano con il nome mariadb, alternativi ai comandi che iniziano con «mysql» (ad esempio, mariadump invece di mysqldump).
Fonte: opennet.ru
