Maison > Article > base de données > Quelle est la différence entre mysql8.0 et mysql5.7 ?
Différence : L'index de mysql8.0 peut être masqué et affiché Lorsqu'un index est masqué, il ne sera pas utilisé par l'optimiseur de requêtes ; 2. Mysql8.0 a une nouvelle commande "SET PERSIST" ; 3 . À partir de mysql8.0, l'encodage par défaut de la base de données sera modifié en utf8mb4, qui inclut tous les caractères emoji.
(Tutoriel recommandé : Tutoriel vidéo mysql)
mysql8.0 et mysql5. La différence entre 7 est
Mysql fournit 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 dans. pratique. Il est rarement utilisé dans
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
En d'autres termes, vous pouvez masquer un index et observer ensuite l'impact sur la base de données. cela signifie que l'index est efficace, donc "restaurer l'affichage" ; s'il n'y a aucun changement dans les performances de la base de données, cela signifie que l'index est trop grand. Vous pouvez supprimer la syntaxe de
pour masquer un index.
ALTER TABLE t ALTER INDEX i INVISIBLE;
pour restaurer l'affichage. La syntaxe 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 d'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. index pendant longtemps, autant le tuer car l'existence de l'index affectera les fonctions d'insertion, de mise à jour et de suppression
Les paramètres MySQL peuvent être modifiés. au moment de l'exécution via la commande SET GLOBAL, mais cette modification ne prendra effet que temporairement jusqu'au prochain démarrage. La base de données lira alors à partir du fichier de configuration.
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 la démarrera. la prochaine fois, le fichier sera lu et la configuration qu'il contient sera utilisée 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 niveaux et les zones semblent plus distincts et il est plus clair de savoir quelle partie changer 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 de la requête multi-lignes en une seule ligne, mais place les résultats sur 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 de la classe de petite à grande, vous pouvez utiliser la fonction fenêtre comme ceci :
Description : Une fenêtre nommée w est créée ici, et elle est spécifiée pour trier le champ stu_count, puis exécuter la méthode Rank() sur w dans la clause select, et afficher le résultat sous forme de classement. champ.
Cette fonctionnalité est également une nouvelle fonctionnalité d'Oracle11g, et elle joue également un rôle très important dans l'optimisation.
Pour plus de connaissances sur la programmation, veuillez visiter : Introduction à la programmation ! !
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!