MySQL 8.0 RC1 est disponible
Avec des améliorations en profondeur marquées par le support d'Unicode 9, des CTE, des fonctions Window et plus encore

Le , par Olivier Famien, Chroniqueur Actualités
L’équipe de MySQL vient d’annoncer la première release candidate de la version 8.0 de MySQL. Dans cette nouvelle version, les mainteneurs du projet expliquent que leur objectif global est de « ;rendre MySQL meilleur pour les applications modernes ;». Sous le terme « ;applications modernes ;», il faut comprendre par là des applications orientées vers le mobile, avec un meilleur support d’Unicode et JSON.

Cette version de MySQL constitue également un nouveau point de départ. Et c’est ce que l’équipe en charge du projet a essayé de montrer en passant volontairement de la version 5.x nommée ainsi depuis 2005 à la version 8.0 « ;Nous avons estimé que l’utilisation d’un nouveau numéro était importante pour communiquer sur la profondeur de certains des changements de base. Sauter 6.x et 7.x était intentionnel pour éviter toute confusion avec une version alpha précédente et MySQL Cluster ;», ont précisé les développeurs du système de gestion de base de données relationnelle.

Dans cette version de MySQL 8.0 RC1, nous notons de prime abord une amélioration du support pour JSON. JSON est un format léger d’échange de données tiré de la notation des objets du langage JavaScript. Il permet de représenter de l’information structurée comme le permet XML par exemple. Dans cette nouvelle version de MySQL, les fonctionnalités de ce format de données ont été étendues avec l’ajout des fonctions pour vérifier la taille sur disque du type natif JSON, l’intégration de fonctions pour les objets agrégés et les tableaux et une fonction pour une mise en forme. En outre, les performances de JSON ont été également améliorées.

Une seconde amélioration importante à noter est l’amélioration de la fonctionnalité Document Store qui permet d’utiliser MySQL comme si l’on faisait du NoSQL. Une base de données NoSQL est une base de données qui fournit un mécanisme de stockage et de récupération des données différents des modèles des bases de données traditionnelles. Dans cette version 8.0 RC1 de MySQL, Document store fournit des lectures et des écritures cohérentes en plus de ses capacités d’indexation qui ont été élargies.

À côté de ces améliorations, deux autres fonctionnalités ont atterri dans cette nouvelle version à la demande des utilisateurs et sont les expressions de table communes (abrégé CTE en anglais) et les fonctions Window. Une expression de table commune, qui peut être utilisée pour créer une requête récursive, est comparable à une table dérivée, en ce sens qu’elle n’est pas stockée sous forme d’objet et dure uniquement le temps de la requête. Mais contrairement à une table dérivée, une expression CTE peut faire référence à elle-même et être référencée plusieurs fois dans la même requête. Les fonctions Window pour leur part sont semblables à des fonctions agrégées groupées qui effectuent des calculs sur un ensemble de lignes. L’avantage avec les fonctions Window est qu’elles sont extrêmement puissantes et réduisent considérablement la complexité du code.

En référence aux nouvelles orientations pour faire de MySQL une base de données de choix pour les applications modernes, le support pour la version 9 d’Unicode a été intégré à cette nouvelle version de MySQL et l’on est passé de latin1 à utf8mb4 pour ce qui concerne le jeu de caractères par défaut. Au niveau des données spatiales, le système d’information géographique (GIS en anglais) a été étendu pour supporter la géographie et les systèmes de référence spatiale.

Avec le cloud qui représente aujourd’hui un domaine assez important dans le monde technologique, une nouvelle option innodb_dedicated_server a été ajoutée et permet de détecter automatiquement la mémoire du système et de configurer MySQL de manière appropriée sans avoir à modifier les fichiers de configuration.

Par ailleurs, MySQL 8.0 RC1 offre de nouvelles possibilités de gérer les lignes verrouillées avec les mots-clés SKIP LOCKED et NOWAIT. SKIP LOCKED permet de sauter les lignes verrouillées pendant une opération et NOWAIT lance une erreur lorsqu’une ligne verrouillée est rencontrée.

Au-delà de ces améliorations, l’équipe de Mysql rapporte que des index invisibles ont été ajoutés dans cette mouture du système de base de données relationnelle afin de pouvoir « ;marquer un index indisponible pour qu’il soit utilisé par l’Optimizer. Cela signifie que l’index sera toujours maintenu et tenu à jour à mesure que les données sont modifiées, mais aucune requête ne sera autorisée à utiliser l’index (même si la requête utilise un index FORCE INDEX) ;».

Plusieurs autres améliorations sont disponibles dans cette nouvelle version de MySQL.

Source : Mysql

Et vous ?

Avez-vous testé cette nouvelle version de MySQL ;? Quel est votre avis ;?

Cette nouvelle version de MySQL est-elle en phase avec vos espérances ;?

Voir aussi

MySQL 5.7 est désormais disponible en téléchargement, cette mouture a été présentée comme étant trois fois plus rapide que l’ancienne
MySQL 5.5 disponible, Oracle segmente son marché
Red Hat Enterprise Linux 7 abandonne aussi MySQL pour MariaDB, la version bêta disponible


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de SQLpro SQLpro - Rédacteur https://www.developpez.com
le 29/09/2017 à 10:36
MySQL est en train de devenir un SGBDR mature... Il était temps car la pauvreté du niveau de SQL le rendait inapplicable en entreprise.
Si les nombreux bugs ont été corrigés, alors il deviendrait concurrentiel à PostGreSQL, mais il sera encore loin d'égaler un Oracle ou mieux un SQL Server, d'autant que ce dernier est arrivé sous Linux !
https://www.developpez.net/forums/d1...ocker-windows/

Rreste le prix.... Oracle ne faisant pas de cadeau. Et Oracle-MySQL n'est pas mariaDB....

A +
Avatar de abriotde abriotde - Membre éprouvé https://www.developpez.com
le 29/09/2017 à 14:03
Oracle a tué MySQL. Il reste MariaDB et PerconaDB ses fork ou encore PostgreSQL pour la cartographie. Je doute que MySQL puisse se remettre de l'état d'abandon auquel l'a laissé Oracle, sa seul chance est de refusionné avec Maria ou Percona.
La base de donnée Oracle est pour ne pas dire un attrape nigaud, une base ayant un intérêt que pour les très grosse base de données des société ayant de l'argent et des talents à dépenser.
Avatar de redcurve redcurve - Membre averti https://www.developpez.com
le 29/09/2017 à 15:42
Waw mysql est enfin en 2005 ...
Avatar de esperanto esperanto - Membre confirmé https://www.developpez.com
le 01/10/2017 à 21:57
Citation Envoyé par SQLpro Voir le message
MySQL est en train de devenir un SGBDR mature... Il était temps car la pauvreté du niveau de SQL le rendait inapplicable en entreprise.
MySQL ne visait pas le même marché qu'Oracle. Il visait plutôt des marchés où la performance pure prime sur la richesse des fonctionnalités:
  • pour développer un site web, où les lectures sont bien plus nombreuses que les écritures
  • dans un système embarqué, où les ressources limitées amènent souvent à sacrifier des fonctionnalités comme par exemple le multi-tâche (c'est dans ce cas que MySQL était commercialisé en version non-GPL)


MySQL n'a commencé à devenir gênant pour Oracle que quand ils ont récupéré SAP DB, renommée Max DB. Moins connue que MySQL, mais clairement positionnée sur le même marché qu'Oracle, c'est toute la différence.

Aujourd'hui on met dans MySQL les mêmes fonctions que partout, ce qui va contribuer à le rendre inutile, tant par rapport à Oracle que par rapport à Postgresql: il n'y a plus l'argument de la légèreté donc pourquoi ne pas passer à Postgresql, notoirement plus léger qu'Oracle mais avec beaucoup de fonctions similaires. Et comme Postgresql n'est pas une entreprise (même si EntrepriseDB existe mais reste confidentielle) impossible de la racheter: même en rachetant EDB, la licence plus permissive permettrait de créer une nouvelle entreprise bien plus facilement que ce qu'ont pu faire MariaDB et consorts.
Pourtant je reste persuadé qu'entre le minimalisme de SQLite (qui n'utilise pas réellement de types, même si sa syntaxe les supporte) et un moteur à transactions complexes comme Postgresql, il resterait de la place pour un petit serveur sans transactions. Mais même MySQL a abandonné le créneau alors...
Avatar de SQLpro SQLpro - Rédacteur https://www.developpez.com
le 02/10/2017 à 14:24
Citation Envoyé par esperanto Voir le message
MySQL ne visait pas le même marché qu'Oracle. Il visait plutôt des marchés où la performance pure prime sur la richesse des fonctionnalités:
ha oui ??? Parce que vous pensez franchement que MySQL soit le plus performants des SGBDR ??? Là on rigole... C'est sans aucune doute le plus lent.... Il n'est qu'à lire les demandes dans ce forums de requêtes qui partent en sucette... En sus les benchmarks effectué en montre bien la lenteur...
exemple : https://blog.developpez.com/sqlpro/p...alles_en_sql_1

A +
Avatar de Michael Guilloux Michael Guilloux - Chroniqueur Actualités https://www.developpez.com
le 20/04/2018 à 16:47
MySQL 8.0 est disponible
le SGBD se dote de nouvelles fonctionnalités SQL, de sécurité, NoSQL et JSON et est jusqu’à deux fois plus performant

Oracle vient d'annoncer la disponibilité générale de MySQL 8.0. Il s'agit de la nouvelle version majeure de son système de gestion de bases de données relationnelles (SGBDR) distribué sous une double licence (GPL et propriétaire) et qui se présente comme l'un des SGBD les plus populaires au monde. Oracle a volontairement décidé de passer de la version 5.x à la version 8.0 pour que la numérotation reflète la profondeur des nouveautés et améliorations apportées à son SGBDR. Mais lesquelles ?

MySQL Document Store

La première grande nouveauté par rapport aux versions précédentes est MySQL Document Store, qui permet aux développeurs et administrateurs de bases de données de déployer des bases MySQL qui implémentent un modèle document store, relationnel ou hybride. Document Store était déjà disponible depuis MySQL 5.7.12, mais on peut dire qu'il fait son entrée officielle dans la version 8.0. D'après Oracle, MySQL Document Store offre aux développeurs une flexibilité maximale pour développer des applications relationnelles SQL traditionnelles et des applications de bases de données NoSQL orientées document. Cela élimine donc le besoin d'une base de données NoSQL orientée document distincte. MySQL Document Store fournit une prise en charge des transactions multidocuments et une conformité ACID (Atomicité, Cohérence, Isolation et Durabilité) complète pour les documents JSON sans schéma.


Architecture de MySQL 8 Document Store

Nouvelles fonctionnalités SQL

MySQL 8.0 introduit de nombreuses nouvelles fonctionnalités SQL demandées par les développeurs. C'est le cas par exemple des fonctions Window – parfois appelées fonctions analytiques – qui sont semblables à des fonctions agrégées groupées qui effectuent des calculs sur un ensemble de lignes. Mais on notera aussi les expressions de table communes (CTE, Common Table Expressions). Une expression de table commune est comparable à une table dérivée, en ce sens qu’elle n’est pas stockée sous forme d’objet et dure uniquement le temps de la requête. Mais contrairement à une table dérivée, une expression CTE peut faire référence à elle-même et être référencée plusieurs fois dans la même requête.

MySQL 8.0 offre aussi de nouvelles possibilités de gérer les lignes verrouillées avec les mots-clés SKIP LOCKED et NOWAIT. Normalement, lorsqu'une ligne est verrouillée à cause d'un UPDATE ou d'un SELECT ... FOR UPDATE, toute autre transaction devra attendre avant de pouvoir accéder à cette ligne verrouillée. Mais dans certains cas d'utilisation, il est nécessaire de faire un retour immédiatement si une ligne est verrouillée ou d'ignorer tout simplement les lignes verrouillées. C'est là que NOWAIT et SKIP LOCKED entrent en jeu. Des clauses de verrouillage utilisant NOWAIT ou SKIP LOCKED ne vont jamais attendre que la transaction qui a entraîné le verrouillage des lignes auxquelles elles veulent accéder soit terminée. Dans le premier cas, la requête va échouer avec une erreur. Et dans le second cas, les lignes verrouillées vont être ignorées et ne seront pas lues du tout.

La nouvelle version majeure de MySQL fournit également la fonction GROUPING() qui est utilisée pour distinguer les valeurs null renvoyées par les extensions de la clause GROUP BY telles que ROLLUP des valeurs null standard.

Nouvelles fonctions JSON

MySQL 8.0 vient encore avec de nouvelles fonctions JSON. C'est le cas par exemple de : la fonction de table JSON_TABLE() qui crée une vue relationnelle des données JSON ; les fonctions d'agrégation JSON_ARRAYAGG() pour générer des tableaux JSON et JSON_OBJECTAGG() pour générer des objets JSON ; et la fonction de fusion JSON_MERGE_PATCH().

En plus des nouvelles fonctions JSON, MySQL 8.0 offre de meilleures performances pour trier ou regrouper les valeurs JSON. Les premiers tests, d'après Oracle, montrent une amélioration des performances de tri de 1,2 à 18 fois, en fonction du cas d'utilisation. On note encore la prise en charge de la mise à jour partielle pour les fonctions JSON_REMOVE(), JSON_SET() et JSON_REPLACE(). L'idée est que si seulement certaines parties d'un document JSON sont mises à jour, on doit donner des informations au gestionnaire (handler) sur ce qui a été changé, afin que le moteur de stockage et la réplication n'aient pas besoin d'écrire le document complet.

Autres fonctionnalités : fiabilité, performance, sécurité, haute disponibilité, etc.

MySQL 8.0 améliore aussi la fiabilité en assurant un DDL atomique et sans incident, avec le dictionnaire de données transactionnel. Avec cela, l'utilisateur est garanti que toute déclaration DDL sera exécutée entièrement ou pas du tout. Ceci est particulièrement important dans un environnement répliqué, sinon il peut y avoir des scénarios dans lesquels les serveurs maîtres et esclaves ne sont pas synchronisés.

Entre autres nouvelles fonctionnalités, on peut citer la possibilité de changer la visibilité d'un index (visible/invisible). Un index invisible n'est pas pris en compte par l'optimiseur lorsqu'il fait le plan d'exécution de la requête. Cependant, l'index est toujours maintenu en arrière-plan, il n'est donc pas difficile de le rendre visible à nouveau. Le but est de permettre à l'administrateur de base de données de déterminer si un index peut être supprimé ou non. Si vous suspectez un index de ne pas être utilisé, vous pouvez le rendre d'abord invisible, puis surveiller les performances de la requête et, finalement, supprimer l'index si vous ne constatez pas de lenteur dans l'exécution de la requête.

MySQL fournit aussi une solution de haute disponibilité native et intégrée pour vos bases de données avec InnoDB Cluster. Ce dernier intègre étroitement MySQL Server avec Group Replication, MySQL Router, et MySQL Shell, de sorte que vous n'ayez pas besoin de compter sur des outils externes, des scripts ou d'autres composants.

Comme fonctionnalités de sécurité, OpenSSL est utilisé en tant que bibliothèque TLS/SSL par défaut pour MySQL Enterprise Edition et MySQL Community Edition. MySQL 8.0 implémente aussi des rôles SQL. Un rôle est une collection nommée de privilèges. Le but est de simplifier la gestion des droits d'accès des utilisateurs. Vous pouvez par exemple attribuer des rôles aux utilisateurs, attribuer des privilèges aux rôles, créer des rôles, supprimer des rôles et décider quels rôles sont applicables pendant une session.

En termes de performances, la nouvelle version du SGBDR est jusqu'à deux fois plus rapide que son prédécesseur (MySQL 5.7), avec de meilleures performances pour les charges de travail en lecture/écriture, les charges de travail liées aux entrées/sorties, etc.


D'après Oracle, les développeurs veulent pouvoir stocker des emojis dans leurs bases de données, ainsi UTF8MB4 est maintenant le jeu de caractères par défaut dans la version 8.0. Le géant des SGBD rappelle que UTF8MB4 est l'encodage de caractères dominant pour le web, et ce changement rendra la vie plus facile pour la grande majorité des utilisateurs de MySQL.

On ne pourrait citer ici la liste exhaustive des nouveautés de MySQL 8.0. Vous trouverez plus de détails sur cette version sur le site d'Oracle. Mais précisons que, de manière logique, il y a des fonctionnalités supplémentaires pour MySQL 8.0 Enterprise Edition. Pour les applications critiques, MySQL Enterprise Edition offre d'autres fonctionnalités telles que :

  • MySQL Enterprise Backup : pour les sauvegardes complètes, incrémentielles et partielles, la récupération ponctuelle et la compression de sauvegarde ;
  • MySQL Enterprise High Availability : pour une haute disponibilité intégrée et native pour les entreprises avec InnoDB Cluster ;
  • MySQL Enterprise Transparent Data Encryption (TDE) : pour le chiffrement des données au repos ;
  • MySQL Enterprise Encryption : pour le chiffrement, la génération de clés, les signatures numériques et autres fonctionnalités cryptographiques ;
  • MySQL Enterprise Authentication : pour une intégration avec les infrastructures de sécurité existantes, y compris PAM et Windows Active Directory ;
  • MySQL Enterprise Firewall : pour une protection en temps réel contre les attaques spécifiques de bases de données, telles que l'injection SQL ;
  • MySQL Enterprise Audit : pour l'ajout d'une conformité d'audit aux applications nouvelles et existantes ;
  • MySQL Enterprise Monitor : pour la gestion de votre infrastructure de base de données ;
  • Oracle Enterprise Manager : pour surveiller les bases de données MySQL à partir d'implémentations OEM existantes.

Téléchargement de MysQL

Source : Oracle

Et vous ?

Que pensez-vous des nouveautés et améliorations annoncées dans MySQL 8.0 ?
Lesquelles appréciez-vous le plus ? Pourquoi ?
Quelles fonctionnalités attendez-vous encore ?
Avec cette nouvelle version, comment trouvez-vous MySQL par rapport aux SGBD concurrents ?
Quel est votre SGBD préféré ? Pourquoi ?

Voir aussi

MySQL 5.7 est désormais disponible en téléchargement, cette mouture a été présentée comme étant trois fois plus rapide que l’ancienne
Red Hat Enterprise Linux 7 abandonne aussi MySQL pour MariaDB, la version bêta disponible
Avatar de SQLpro SQLpro - Rédacteur https://www.developpez.com
le 26/04/2018 à 10:08
Comme d'habitude avec Oracle, chaque module est payant.... Annuellement au minimum avec 2000 $ pour un max de 4 cœur sans aucun module complémentaire; 60 000 € pour la version Enterprise sans support.

Bref, cela s'avère beaucoup plus cher que SQL Server surtout si l'on a besoin de la partie BI et reporting qui n'existe pas dans MySQL...

A +
Contacter le responsable de la rubrique Accueil