Maison  >  Article  >  base de données  >  Fonctionnalités MySQL5.5&Mysql5.6&Mysql5.7

Fonctionnalités MySQL5.5&Mysql5.6&Mysql5.7

黄舟
黄舟original
2017-02-07 11:13:321206parcourir

Fonctionnalités MySQL5.5, par rapport à Mysql5.1

amélioration des performances

  • Moteur de plugin InnoDB par défaut. Il dispose de fonctions de validation, de restauration et de récupération après incident et est compatible ACID.

  • Verrouillage au niveau de la ligne (MVCC en lecture cohérente et non verrouillable).

  • Les tables et les index sont stockés dans l'espace table et la taille de la table est illimitée.

  • Prend en charge les formats de lignes dynamiques (mémoire cache de clé primaire pour éviter les E/S provoquées par une requête de clé primaire) et compressés (prend en charge la compression des données et des index).

  • Le format de fichier du plugin InnoDB Barracuda, prend en charge la compression de table, économise le stockage, fournit un taux d'accès à la mémoire et tronque la table plus rapidement.

  • InnoDB d'origine n'avait qu'un seul UndoSegment, prenant en charge jusqu'à 1023 simultanéités ; il compte désormais 128 segments, prenant en charge 128 000 simultanéités (de la même manière, pour résoudre l'annulation des transactions causée par une simultanéité élevée).

  • Innodb_thread_concurrency est défini par défaut sur 0 et le nombre de threads simultanés est illimité. La valeur optimale peut être définie en fonction d'applications spécifiques.

  • Innodb_io_capacity peut ajuster dynamiquement le nombre de pages sales à actualiser et améliorer la dégradation des performances causée par l'incapacité de suivre les actualisations des pages sales lors de mises à jour par lots importantes. Par défaut : 200, lié aux IOPS du disque dur.

  • Profitez pleinement de la puissance de traitement multicœur du processeur. Seuil innodb_read_io_threads : 1-64 Seuil innodb_write_io_threads : 1-64 peut être défini de manière flexible en fonction du taux de lecture-écriture de. la base de données pour exploiter pleinement les performances des périphériques de stockage multi-CPU et hautes performances n'est pas prise en charge.

  • Actualiser de manière adaptative les pages sales

  • Les données chaudes survivent plus longtemps

  • pool de tampons à plusieurs instances : le Le paramètre innodb_buffer_pool_instances augmente le nombre d'instances innodb_buffer_pool, ce qui réduit considérablement les conflits de mutex et la surchauffe du pool de mémoire tampon.

  • E/S asynchrones sur Linux

  • Reprise en charge de la soumission du groupe

Amélioration de la stabilité

  • Prend en charge la réplication semi-synchrone.

  • Ajouter une fonction d'auto-guérison Relay Log.

  • Récupération après crash.

  • L'introduction de l'arbre rouge-noir comme structure de données intermédiaire pour le tri par insertion réduit considérablement la complexité temporelle et réduit le temps de récupération.

  • Mise en file d'attente des groupes de threads et limitation de courant

Fonctionnalités MySQL 5.6, par rapport à la version 5.5

  • Modifications des paramètres par défaut

  • Back_log Queue

  • Prise en charge de l'index de texte intégral

  • Support en ligne DDL créer, modifier, déposer

  • Vous pouvez spécifier l'emplacement de l'espace table lors de la création de la table

                 créer une table externe (x int non signé clé primaire non nulle) répertoire de données = '/volumes/ external1/data';

  • Le nouveau paramètre innodb_page_size peut définir la taille de la page

  • API memcached intégrée, vous pouvez utiliser l' API pour accéder directement à la table innodb, pas à SQL (réduisez le coût de l'analyse SQL et de l'optimisation des requêtes)

  • transaction innodb en lecture seule, pas besoin de définir le champ TRX_ID,

  • Réduisez la surcharge structurelle des données internes, réduisez la vue en lecture

  • Seules les transactions non en lecture seule nécessitent toujours TRX_ID

Points d'amélioration Innodb

  • Migration en ligne de l'espace table Innodb (TransportableTablespaces)

  • Le journal d'annulation peut être séparé indépendamment de l'espace table système

  • redo log peut atteindre un maximum de 512G

  • Le thread d'arrière-plan innodb est indépendant

Optimiseur améliorations

  • ICP

    Vous pouvez filtrer directement les données au niveau de la couche moteur pour éviter les retours de tables secondaires

    Économisez de l'espace BP et améliorez les performances des requêtes

  • BKA

    Nom complet Batch Key Access :

    Lorsque SQL accède aux données de la table via l'index auxiliaire, il place un grand nombre d'accès aléatoires dans le cache et les remet à l'interface MRR pour les fusionner en accès séquentiels.

  • MRR

    Nom complet Multi Range Lire :

    Une fois l'algorithme BKA appliqué, l'accès aléatoire est fusionné en accès séquentiel via l'interface MRR, puis la table contient des données récupérées.

    Changez un grand nombre d'accès aléatoires en accès séquentiels. Lors de la récupération d'une grande quantité de données via l'index auxiliaire, les performances sont considérablement améliorées

    La tête magnétique n'a pas besoin de chercher d'avant en arrière, la page n'a besoin d'être lue qu'une seule fois et la lecture linéaire innodb la fonction forward est mieux utilisée (64 pages consécutives sont lues à l'avance à chaque fois).

  • Les informations statistiques sont persistantes et ne seront pas perdues après le redémarrage de mysqld

  • L'instruction expliquer prend en charge les instructions d'insertion, de mise à jour, de suppression, de remplacement et prend en charge le format JSON

  • Amélioration de l'optimisation des sous-requêtes.


Fonctionnalités de MySQL5.7, par rapport à 5.5 5.6

Sécurité

  • Le Le champ plugin de la table utilisateur mysql.user ne doit pas être vide. La valeur par défaut est mysql_native_password, et non mysql_old_password. L'ancien format de mot de passe n'est plus pris en charge

    .
  • Ajouter un mécanisme d'expiration du mot de passe, vous devez modifier le mot de passe après l'expiration, sinon il risque d'être désactivé, ou passer en mode sandbox

  • Ajouter un mécanisme d'expiration du mot de passe ; , expire Vous devez modifier le mot de passe plus tard, sinon il risque d'être désactivé ou de passer en mode sandbox

  • fournit une configuration d'accès de sécurité SSL plus simple et la connexion par défaut utilise le cryptage SSL.

Flexibilité

  • La base de données MySQL prend également en charge JSON à partir de la version 5.7.8.

  • peut stocker des données structurées et des données non structurées de manière mixte, et présente les avantages des bases de données relationnelles et non relationnelles

  • peut fournir Prise en charge complète des transactions

  • colonne générée est une nouvelle fonctionnalité introduite dans MySQL 5.7. La colonne dite générée signifie que cette colonne de la base de données est calculée à partir d'autres colonnes

  • .

Facilité d'utilisation

  • Avant MySQL 5.7, si l'utilisateur saisissait une instruction SQL incorrecte et appuyait sur ctrl c, bien que cela puisse "mettre fin" à l'exécution de l'instruction SQL , il quittera également la session en cours. MySQL 5.7 a amélioré cette fonctionnalité contre-intuitive et ne quitte plus la session.

  • MySQL 5.7 peut expliquer un SQL en cours d'exécution, ce qui sera très utile aux administrateurs de base de données pour analyser les instructions qui prennent beaucoup de temps à s'exécuter.

  • sys schema est une bibliothèque système introduite dans MySQL 5.7.7. Il contient une série de vues, de fonctions et de procédures stockées. Ce projet se concentre sur la facilité d'utilisation de MySQL.

  • Par exemple : comment afficher les index redondants dans la base de données ; comment obtenir les index inutilisés ; comment afficher les instructions SQL à l'aide d'analyses de tables complètes.

Disponibilité

  • Paramètres en ligne Règles de filtrage copiées Plus besoin de redémarrer MySQL, arrêtez simplement le SQLthread Une fois la modification terminée, démarrez le. Fil SQL.

  • Modifiez la taille du pool tampon en ligne.

  • Online DDL MySQL 5.7 prend en charge le renommage des index et la modification de la taille de varchar Dans les versions précédentes, les deux opérations nécessitaient la reconstruction de l'index ou de la table.

  • Activer GTID en ligne. Dans la version précédente, étant donné que l'activation de GTID en ligne n'était pas prise en charge, si l'utilisateur souhaite mettre à niveau la version inférieure de la base de données vers une version de base de données prenant en charge GTID, il doit d'abord fermer la base de données. Ensuite, il démarre en mode GTID, ce qui rend la mise à niveau particulièrement gênante.

Performances

  • Améliorations des performances des tables temporaires.

    Les tables temporaires ne sont visibles que dans la session en cours

    Le cycle de vie des tables temporaires est la connexion actuelle (MySQL est en panne ou redémarré, la connexion actuelle se termine)

  • Améliorations des performances des transactions en lecture seule.

    MySQL 5.7 optimise la surcharge des transactions en lecture seule et améliore les performances globales de la base de données en évitant d'attribuer des ID de transaction pour les transactions en lecture seule, en n'attribuant pas de segments d'annulation pour les transactions en lecture seule et en réduisant la concurrence de verrouillage. .

    Accélérez le traitement des connexions.

    Avant MySQL 5.7, les opérations d'initialisation des variables (THD, VIO) étaient effectuées dans le thread de réception de connexion. Désormais, ces tâches sont envoyées au thread de travail pour réduire la charge de travail du thread de réception de connexion et améliorer le traitement. vitesse de la connexion. Cette optimisation sera très utile pour les applications qui établissent fréquemment des connexions courtes.

  • Amélioration des performances de réplication (prend en charge la réplication multithread (esclaves multithread, appelés MTS))

    La configuration par défaut de MySQL est la réplication parallèle au Au niveau de la bibliothèque. Afin de tirer pleinement parti de la fonction de réplication parallèle de MySQL 5.7, nous devons configurer slave-parallel-type sur LOGICAL_CLOCK pour prendre en charge la réplication multi-sources

  • <.>
  • Activer le mode STRICT_TRANS_TABLES par défaut

Une prise en charge de fonctionnalités plus complexes est implémentée pour le mode ONLY_FULL_GROUP_BY et est également prise en charge

    <.>Les autres modes SQL activés par défaut incluent NO_ENGINE_SUBSTITUTION.
  • Modifications des paramètres par défaut

  • Le format binlog par défaut est ajusté au format ROW

  • L'opération d'erreur de journal binaire par défaut est ajustée à ABORT_SERVER

  • Sous l'option précédente (binlog_error_action=IGNORE_ERROR), si Si une erreur se produit et que le journal binaire ne peut pas être écrit, mysql-server enregistrera l'erreur dans le journal des erreurs et désactivez de force la fonction binlog. Cela entraînera le serveur mysql à continuer de fonctionner en mode de non-enregistrement du binlog, empêchant la bibliothèque esclave de continuer à obtenir le Binlog maître
.

    Activer la sécurité du binlog lorsque MySQL plante
  • Réduire slave_net_timeout par défaut >
  • L'installation est différente

    mysql_install_db n'est plus recommandé. Il est recommandé de passer à mysqld --initialize pour terminer l'initialisation de l'instance. S'il existe déjà un fichier de données dans le répertoire cible pointé par datadir, alors il y aura [ERROR] Aborting;
  • Si --initial-insecure est ajouté lors de l'initialisation, un compte root@localhost avec un mot de passe vide sera créé, sinon un compte root@localhost avec un mot de passe sera créé, et le mot de passe sera être écrit directement dans le journal des erreurs Dans le fichier journal ; les nouveaux utilisateurs doivent changer leur mot de passe immédiatement après s'être connectés, sinon ils ne pourront pas continuer leur travail.

Ce qui précède est le contenu des fonctionnalités de Mysql5.5&Mysql5.6&Mysql5.7 Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !




Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn