当前位置:网站首页>MySQL Real Game 45 talk Learning notes (6)

MySQL Real Game 45 talk Learning notes (6)

2022-01-15 02:24:20 Ordinaryblog

MySQLAnalyse instantanée de la dégradation des performances

Quand cela va - t - il déclencherflush

  1. redo log Écris tout..Le système arrête toutes les opérations de mise à jour,Prends ça. checkpoint Avancez.,redo log Laisser de l'espace pour continuer à écrire
  2. Mémoire système insuffisante.Lorsque de nouvelles pages de mémoire sont nécessaires,Et quand il n'y a pas assez de mémoire,On va éliminer quelques pages de données,Mémoire libre pour d'autres pages de données.Si l'élimination“Pages sales”,Écrivez d'abord des pages sales sur le disque
  3. MySQL Penser au système“Inactif”Quand
  4. MySQL Fermeture normale.

Apparemment.:Les deux conditions suivantes peuvent avoir de graves répercussions sur le rendement:

Trop de pages sales à éliminer dans une requête,Peut conduire àRequête Le temps de réponse de ;
Log Full,Mise à jour bloquée,Écrire la performanceChute à 0

flushContrôle de la vitesse

ImpactInnoDBFacteur de vitesse du disque de brosse:

  1. Échelle des pages sales ,
  2. redo log Vitesse d'écriture

Paramètres connexes

  1. innodb_io_capacity Ajuster dynamiquement le nombre de pages Sales rafraîchies
  2. innodb_max_dirty_pages_pct Limite supérieure de l'échelle des pages sales ,La valeur par défaut est 75%
  3. Échelle des pages sales :Innodb_buffer_pool_pages_dirty/Innodb_buffer_pool_pages_total ( Pages sales /Nombre total de pages)
  4. innodb_flush_neighbors (La valeur est:1 Les voisins s'assoient 0Alors fermez.)

Suppression des données dans le tableau

UnInnoDB Le tableau comporte deux parties :Définition de la structure du tableau et données

Structure du tableau

Mysql 8.0 La structure de la table précédente existe .frmDans le fichier avec le suffixe.8.0 Plus tard, la structure du tableau peut être placée dans la Feuille de données du système

Données du tableau

innodb_file_per_table

PourOFFHeure, Les données sont stockées dans l'espace de table partagé du système
PourONHeure,InnoDB Les données du tableau sont stockées dans un .ibd Fichier avec suffixe
Moyenne
Attention!:Il est plus facile de gérer une table stockée séparément sous forme de fichier,Et quand vous n'avez pas besoin de cette montre,Adoption drop table Les ordres,Le système supprimera ce fichier directement.Et si c'est dans un espace de table partagé,Même si la table est supprimée,L'espace ne sera pas recyclé non plus..

Suppression et réutilisation des données du tableau

  1. Suppression et réutilisation des enregistrements :
    InnoDB Le moteur ne marque l'enregistrement que pour la suppression
    Réutilisation des enregistrements:
    Réutilisation des enregistrements,Données limitées aux conditions de champ d'application.
  2. Suppression et réutilisation des pages
    Quand toute la page est passée de B+ Après avoir été arraché de l'arbre,,Peut être réutilisé n'importe où
  3. - Oui.delete Après avoir supprimé les données de la table entière
    Toutes les pages de données Marqué comme réutilisable .Mais sur le disque,Les fichiers ne deviennent pas plus petits

Supprimer les données

delete Les commandes ne font qu'enregistrer l'emplacement,Ou la page de données est marquée pour“Réutilisable”,Mais la taille du fichier disque ne change pas.C'est - à - dire,Adoption delete La commande ne peut pas récupérer l'espace de table, Il y aura de l'espace à gaspiller

Insérer des données

L'insertion de données peut également entraîner un gaspillage d'espace :
Si les données sont insérées dans l'ordre croissant de l'index,L'index est compact..Mais si les données sont insérées au hasard,,Peut provoquer une fragmentation des pages de données indexées.

Mise à jour des données

Mettre à jour les valeurs de l'index,Peut être interprété comme la suppression d'une ancienne valeur,Insérer une nouvelle valeur. Cela crée également un gaspillage d'espace

Comment résoudre ce vide

Tableau de reconstruction
Créer un nouveau tableau avec A Tableaux de même structure B,Puis appuyez sur la touche primaire ID Ordre croissant,Ligne par ligne à partir du tableau A Lisez - le et insérez - le dans le tableau. B Moyenne
Peut être utilisé alter table A engine=InnoDB Commande pour reconstruire la table

Tableau de reconstruction

MySQL5.5 Avant Le tableau de reconstruction est le suivant Perte de données
Insérer la description de l'image ici
( Photo de Geek time )
MySQL 5.6Après Début de l'introduction Online DDL

  1. Créer un fichier temporaire,Tableau de numérisation A Toutes les pages de données de la clé primaire;
  2. Utiliser le tableau de la page de données A Génération d'enregistrements pour B+ Arbre,Stockage dans un fichier temporaire;
  3. Lors de la génération de fichiers temporaires,**Toutes les paires A L'opération pour est enregistrée dans un fichier journal(row log)**Moyenne,Correspond à la figure state2 État de;
  4. Après la génération du fichier temporaire,Appliquer les actions du fichier journal au fichier temporaire,Obtenir un tableau de données logiques A Même fichier de données,Ce qui correspond à la figure state3 État de;
  5. Remplacer le tableau par un document temporaire A Fichier de données pour.

Insérer la description de l'image ici
( Photo de Geek time )
Avant On met la montre. A L'emplacement de stockage des données dérivées est appelé tmp_table.C'est une montre temporaire.,Oui. server Création de calques, Maintenant, selon le tableau A Les données reconstituées sont placées“tmp_file”À l'intérieur.,Ce fichier temporaire est InnoDBCréé en interne.Tout DDL Tout est en cours. InnoDB Achèvement interne

optimize table、analyze table Et alter table La différence entre ces trois façons de reconstruire la table

analyze table t Ce n'est pas vraiment une reconstruction de table.,Il suffit de recalculer l'information d'index du tableau,Aucune donnée modifiée,Ce processus a été complété par MDL Lisez la serrure.;
optimize table t égal à alter table+analyze

版权声明
本文为[Ordinaryblog]所创,转载请带上原文链接,感谢
https://chowdera.com/2022/01/202201080600349521.html

随机推荐