Maison  >  Article  >  base de données  >  Table de partition de réglage des performances MySQL (partage récapitulatif)

Table de partition de réglage des performances MySQL (partage récapitulatif)

WBOY
WBOYavant
2022-04-30 09:00:172334parcourir

Cet article vous apporte des connaissances pertinentes sur mysql, qui introduit principalement les problèmes liés au réglage des performances, et présente principalement le contenu pertinent des tables de partition pour les utilisateurs, les tables de partition sont une table logique indépendante, mais la couche inférieure est composée de plusieurs. sous-tableaux physiques. Examinons-les ensemble, j'espère que cela sera utile à tout le monde.

Table de partition de réglage des performances MySQL (partage récapitulatif)

Apprentissage recommandé : Tutoriel vidéo mysql

Pour les utilisateurs, la table de partition est une table logique indépendante, mais la couche inférieure est composée de plusieurs sous-tables physiques. La table de partition est une boîte noire qui encapsule complètement l'implémentation sous-jacente et est transparente pour l'utilisateur. Plusieurs fichiers de table nommés à l'aide de # pour les séparer peuvent être vus du système de fichiers.
MySQL utilise la clause partition by pour définir les données stockées dans chaque partition lors de la création d'une table, lors de l'exécution d'une requête, l'optimiseur filtrera les partitions qui n'ont pas les données dont nous avons besoin en fonction de la définition de la partition, afin que la requête en ait. pas besoin d'analyser toutes les partitions.
L'objectif principal du partitionnement est de diviser grossièrement les données en différentes tables, afin que les données associées puissent être stockées ensemble.
Ensuite, je parlerai des tables de partition sous les 6 aspects suivants, à savoir les scénarios d'application des tables de partition, les limitations des tables de partition, les principes des tables de partition, les types de tables de partition, comment utiliser les tables de partition et comment utiliser les tables de partition . Des questions qui nécessitent une attention particulière à ce moment-là.

1. Scénarios d'application des tables de partition

1. La table est si grande qu'elle ne peut pas être entièrement placée en mémoire, ou il n'y a que des données chaudes dans la dernière partie de la table, et le reste est constitué de données historiques.

2. Les données de la table de partition sont plus faciles à maintenir

(1) Pour supprimer une grande quantité de données par lots, vous pouvez utiliser la méthode d'effacement de la partition entière

(2) Optimiser, inspecter, réparer, etc. partition indépendante

3. Table de partition Les données peuvent être distribuées sur différents appareils physiques, utilisant ainsi efficacement plusieurs périphériques matériels

4. Les tables de partition peuvent être utilisées pour éviter certains goulots d'étranglement particuliers

(1) Accès mutuellement exclusif à un seul index. d'innodb

( 2) Concours de verrouillage d'inode dans le système de fichiers ext3

5 Les partitions indépendantes peuvent être sauvegardées et restaurées

2 Limitations des tables de partition

1. il peut prendre en charge 8196 dans la version 5.7 Partition

2. Dans les premiers MySQL, l'expression de partition doit être un entier ou une expression qui renvoie un entier. Dans MySQL 5.5, les colonnes peuvent être utilisées directement pour le partitionnement dans certains scénarios.

3. S'il y a des colonnes de clé primaire ou d'index unique dans le champ de partition, alors toutes les colonnes de clé primaire et les colonnes d'index unique doivent être incluses.

4. Les contraintes de clé étrangère ne peuvent pas être utilisées dans les tables partitionnées

3. Le principe des tables partitionnées

Une table partitionnée est implémentée par plusieurs tables sous-jacentes liées. Cette table sous-jacente est également identifiée par un objet handle, et nous. peut accéder directement à chaque partition. Le moteur de stockage gère chaque table sous-jacente de la partition de la même manière qu'il gère une table ordinaire (toutes les tables sous-jacentes doivent utiliser le même moteur de stockage). La connaissance de l'index de la table de partition ajoute un index identique à chaque table sous-jacente. Du point de vue du moteur de stockage, la table sous-jacente n'est pas différente d'une table ordinaire, et le moteur de stockage n'a pas besoin de savoir s'il s'agit d'une table ordinaire ou d'une partie d'une table partitionnée. Le fonctionnement de la table de partition s'effectue selon la logique de fonctionnement suivante :

1. Requête de sélection

Lors de l'interrogation d'une table de partition, la couche de partition ouvre et verrouille d'abord toutes les tables sous-jacentes, et l'optimiseur détermine d'abord si certaines les partitions peuvent être filtrées , puis appeler l'interface du moteur de stockage correspondante pour accéder aux données de chaque partition

2. Opération d'insertion

Lors de l'écriture d'un enregistrement, la couche de partition ouvre et verrouille d'abord toutes les tables sous-jacentes, puis détermine laquelle. La partition accepte ces enregistrements, puis écrit les enregistrements dans la table sous-jacente correspondante.

3. Opération de suppression

Lors de la suppression d'un enregistrement, la couche de partition ouvre et verrouille d'abord toutes les tables sous-jacentes, puis détermine la partition correspondant aux données, et enfin supprime la table sous-jacente correspondante.

4. Opération de mise à jour

Lors de la mise à jour d'un enregistrement, la couche de partition ouvre et verrouille d'abord toutes les tables sous-jacentes. MySQL détermine d'abord quelle partition l'enregistrement doit être mis à jour, puis extrait les données et les met à jour, puis détermine. la mise à jour dans quelle partition les données doivent être stockées, et enfin la table sous-jacente est écrite et la table sous-jacente où se trouvent les données source est supprimée.

Certaines opérations prennent en charge le filtrage. Par exemple, lors de la suppression d'un enregistrement, MySQL doit d'abord trouver l'enregistrement. Si la condition Where correspond à l'expression de la partition, toutes les partitions qui ne contiennent pas cet enregistrement peuvent également être filtrées. pour les mises à jour. S'il s'agit d'une opération d'insertion, elle n'atteindra qu'une seule partition et les autres partitions seront filtrées. MySQL détermine d'abord à quelle partition appartient cet enregistrement, puis écrit l'enregistrement dans la table de partition correspondante sans opérer sur aucune autre partition.

Bien que chaque opération « ouvre et verrouille d'abord toutes les tables sous-jacentes », cela ne signifie pas que la table de partition verrouille la table entière pendant le traitement. Si le moteur de stockage peut implémenter lui-même des verrous au niveau des lignes, comme innodb, alors le correspondant. le verrouillage de la table sera libéré au niveau de la partition.

Apprentissage recommandé : Tutoriel vidéo 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer