Maison >base de données >tutoriel mysql >Quelles sont les différences entre Mysql8 et mysql5.7
Cet article vous présentera la différence entre Mysql8 et mysql5.7. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Mysql a fourni la fonction de stockage NoSQL à partir de la version 5.7. Cette partie a été modifiée en 8.0, mais ce n'est pas pratique en pratique. . Très rarement utilisé
La fonctionnalité d'index caché est très utile pour le débogage des performances Dans la version 8.0, l'index peut être masqué et affiché. , Lorsqu'un index est masqué, il ne sera pas utilisé par l'optimiseur de requêtes
C'est-à-dire que vous pouvez masquer un index et ensuite observer l'impact sur la base de données. Si les performances diminuent, cela signifie que cet index est valide, donc simplement "restaurer l'affichage" s'il n'y a aucun changement dans les performances de la base de données, cela signifie que cet index est trop grand et peut être supprimé
Syntaxe à masquer ; an index
ALTER TABLE t ALTER INDEX i INVISIBLE;
La syntaxe de restauration de l'affichage de l'index est :
ALTER TABLE t ALTER INDEX i VISIBLE;
Lorsqu'un index est masqué, nous pouvons voir dans le résumé de sortie de la commande show index que la valeur de l'attribut visible de l'index est Non
**Remarque :** Lorsque l'index est masqué, son contenu est toujours mis à jour en temps réel comme un index normal. Cette fonctionnalité elle-même est spécifiquement utilisée pour l'optimisation et le débogage. un index pendant longtemps, il vaut mieux le tuer, car l'existence de l'index affectera les fonctions d'insertion, de mise à jour et de suppression des données
Paramètres MySQL. peut être modifié au moment de l'exécution via la commande SET GLOBAL, mais cette modification ne prendra effet que temporairement et la base de données lira à nouveau le fichier de configuration au prochain démarrage.
MySQL 8 a ajouté la commande SET PERSIST, par exemple :
SET PERSIST max_connections = 500;
MySQL enregistrera la configuration de cette commande dans le fichier mysqld-auto.cnf dans le répertoire de données, et elle sera utilisé au prochain démarrage. Lisez ce fichier et utilisez la configuration qu'il contient pour écraser le fichier de configuration par défaut.
À partir de MySQL 8, l'encodage par défaut de la base de données sera modifié en utf8mb4, qui inclut tous les caractères emoji. Pendant de nombreuses années, nous avons été prudents dans le codage lors de l'utilisation de MySQL, de peur d'oublier de changer le latin par défaut et de provoquer des problèmes de code tronqué. Plus de soucis désormais.
Les requêtes complexes utiliseront des tables intégrées, par exemple :
SELECT t1.*, t2.* FROM (SELECT col1 FROM table1) t1, (SELECT col2 FROM table2) t2;
Avec CTE, on peut écrire comme ceci :
WITH t1 AS (SELECT col1 FROM table1), t2 AS (SELECT col2 FROM table2) SELECT t1.*, t2.* FROM t1, t2;
De cette façon, les calques et les zones semblent plus distincts et il sera plus clair de savoir quelle partie modifier lors des modifications.
Cette fonctionnalité est très utile dans de nombreux scénarios de reporting et constitue également une fonctionnalité très importante de l'optimisation MySQL.
1.235 Fonctions de fenêtre
L'une des fonctionnalités les plus critiquées de MySQL est l'absence de fonction Rank(). Lorsque le classement doit être obtenu dans une requête, la variable @ doit être écrite à la main. . Mais à partir de la version 8.0, MySQL a ajouté un nouveau concept appelé fonction de fenêtre, qui peut être utilisé pour implémenter plusieurs nouvelles méthodes de requête.
La fonction window est un peu comme une fonction d'agrégation telle que SUM() et COUNT(), mais elle ne fusionne pas les résultats d'une requête multi-lignes en une seule ligne, mais place les résultats dans plusieurs lignes. En d’autres termes, les fonctions de fenêtre ne nécessitent pas GROUP BY.
Supposons que nous ayons un tableau du « nombre d'élèves dans une classe » :
Si vous souhaitez classer la taille des classes de petite à grande, vous peut utiliser la fonction window comme ceci :
Explication : Une fenêtre nommée w est créée ici, et il est spécifié de trier le champ stu_count, puis d'exécuter le Rank() méthode sur w dans la clause select pour mettre le résultat La sortie est le champ de classement.
Cette fonctionnalité est également une nouvelle fonctionnalité d'Oracle11g, et elle joue également un rôle très important dans l'optimisation.
Recommandations associées : "Tutoriel mysql"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!