Après un an de développement et quatre versions préliminaires la première version stable de la nouvelle branche de la SGBD , dans le cadre de laquelle se développe une dérivation de MySQL, conservant la compatibilité descendante et par l'intégration de nouveaux moteurs de stockage et d'options avancées. Le support de cette nouvelle branche sera assuré pendant 5 ans, jusqu'en juin 2025.
Le développement de MariaDB est supervisé par l'organisation indépendante MariaDB Foundation, dans le cadre d'un processus de développement entièrement ouvert et transparent, sans dépendance envers des producteurs spécifiques. MariaDB est fourni à la place de MySQL dans de nombreuses distributions Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) et est utilisé dans de grands projets tels que , et .
Améliorations clés :
- Un moteur de stockage a été ajouté , permettant d'héberger des tables MariaDB dans Amazon S3 ou tout autre stockage en nuage public ou privé prenant en charge l'API S3. Le stockage dans S3 est pris en charge pour des tables ordinaires ainsi que pour des tables partitionnées. Lors de l'hébergement dans le nuage de tables partitionnées, elles peuvent être utilisées directement depuis un autre serveur ayant accès au stockage S3.
- Un moteur de stockage a été ajouté , qui stocke les données en liaison avec des colonnes et utilise InfiniDB ColumnStore ne stocke pas les données ligne par ligne, mais par colonnes, ce qui permet d'optimiser l'exécution des groupements sur des colonnes de grandes bases de données contenant des pétaoctets de données. La mise à l'échelle linéaire, le stockage compressé des données, le partitionnement vertical et horizontal, ainsi que l'exécution efficace de requêtes concurrentes sont pris en charge.
Tous les fichiers exécutables commençant par le mot « mysql » ont été renommés avec le mot « mariadb ». Les anciens noms sont conservés sous forme de liens symboliques. - Un nouveau type de données a été ajouté
- INET6 Le travail a été effectué pour diviser les privilèges en éléments plus fins. Au lieu du privilège général SUPER, une série de privilèges sélectifs "BINLOG ADMIN",
- "BINLOG REPLAY",
"CONNECTION ADMIN",
"FEDERATED ADMIN",
"READ_ONLY ADMIN",
"REPLICATION MASTER ADMIN",
"REPLICATION SLAVE ADMIN" et
"SET USER".
«DEMANDER UTILISATEUR». - Le privilège «REPLICATION CLIENT» a été renommé en «BINLOG MONITOR», et l'expression «SHOW MASTER STATUS» en «SHOW BINLOG STATUS». Ce renommage clarifie le comportement et n'est pas lié à un souci de politiquement correct ; le projet ne renonce pas aux termes master/slave et a même ajouté de nouveaux privilèges «MASTER ADMIN» et «SLAVE ADMIN». De plus, une nouvelle clé «REPLICA» a été ajoutée dans les expressions SQL, étant un synonyme de «SLAVE».
- Pour certaines expressions, les privilèges nécessaires à leur exécution ont été modifiés. «SHOW BINLOG EVENTS» nécessite désormais le droit «BINLOG MONITOR» au lieu de «REPLICATION SLAVE», «SHOW SLAVE HOSTS» exige le privilège «REPLICATION MASTER ADMIN» à la place de «REPLICATION SLAVE», «SHOW SLAVE STATUS» requiert les droits «REPLICATION SLAVE ADMIN» ou «SUPER» au lieu de «REPLICATION CLIENT», et «SHOW RELAYLOG EVENTS» demande le droit «REPLICATION SLAVE ADMIN» plutôt que «REPLICATION SLAVE».
- Des constructions ont été ajoutées «» et «», renvoyant une liste des lignes insérées/remplacées sous forme de valeurs comme si elles étaient retournées par une expression SELECT (similaire à «DELETE … RETURNING»).
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 |
+——+———+———+———-+
| 1 | 2 | 1 | 1 |
| 2 | 4 | 2 | 1 |
| 3 | 6 | 3 | 1 |
| 4 | 8 | 4 | 1 |
+——+———+———+———-+ - Des expressions «» et «» ont été ajoutées pour exclure/compléter le résultat avec un ensemble spécifique de valeurs.
- Il est désormais possible d'indiquer des commentaires au sein des blocs «CREATE DATABASE» et «ALTER DATABASE».
- Des constructions pour renommer les index et les colonnes ont été ajoutées «» et ««.
- Dans l'opération «ALTER TABLE» et «RENAME TABLE», le support de la condition «IF EXISTS» a été ajouté pour effectuer l'opération uniquement si la table existe ;
- Pour les index dans «CREATE TABLE», un attribut ««.
- Une expression «CYCLE» a été ajoutée pour détecter les cycles récursifs .
- Des fonctions ont été ajoutées et pour renvoyer un tableau ou un objet JSON avec les valeurs de la colonne spécifiée.
- Des tables d'information de service (THREAD_POOL_GROUPS, THREAD_POOL_QUEUES, THREAD_POOL_STATS et THREAD_POOL_WAITS) ont été ajoutées pour le pool de threads (thread_pool).
- L'expression ANALYZE a été étendue pour montrer le temps passé à vérifier le bloc WHERE et à exécuter les opérations auxiliaires.
- L'optimiseur de traitement des plages tient compte des indications «IS NOT NULL»
- La taille des fichiers temporaires utilisés lors du tri avec les types VARCHAR, CHAR et BLOB a été considérablement réduite.
- Dans , utilisé pour organiser la réplication, de nouveaux champs de métadonnées ont été ajoutés, y compris la clé primaire, le nom de la colonne, le jeu de caractères et le type de géométrie. Dans l'utilitaire mariadb-binlog et les commandes « SHOW BINLOG EVENTS » et « SHOW RELAYLOG EVENTS », l'affichage des drapeaux de réplication a été fourni.
- Construction maintenant de manière fiable les tables restantes dans le moteur de stockage, même en l'absence de fichiers « .frm » ou « .par ».
- Une version améliorée matériellement de la fonction crc32() a été réalisée pour CPU AMD64, ARMv8 et POWER 8.
- Certaines configurations par défaut ont été modifiées. Le paramètre innodb_encryption_threads a été augmenté à 255, et la valeur max_sort_length a été augmentée de 4 à 8.
- De nombreuses optimisations des performances du moteur InnoDB ont été introduites.
- Un support complet a été ajouté au mécanisme de réplication multi-maître synchrone Galera (Global Transaction ID), identifiants de transaction uniques pour tous les nœuds du cluster.
- Le passage à une nouvelle branche de la bibliothèque (Expressions Régulières Compatibles Perl), à la place de la série classique PCRE 8.x.
- De nouvelles versions de l'interface pour se connecter aux SGBD MariaDB et MySQL à partir de programmes en Python et C ont été proposées : et . L'interface pour Python respecte l'API DB Python 2.0, est écrite en C et utilise la bibliothèque Connector/C pour se connecter au serveur.
Source : opennet.ru
