Maison  >  Article  >  base de données  >  Qu’est-ce qu’une grande table dans MySQL ? Qu'est-ce qui est grave ? Comment y faire face ?

Qu’est-ce qu’une grande table dans MySQL ? Qu'est-ce qui est grave ? Comment y faire face ?

不言
不言original
2018-09-17 17:35:554126parcourir

Le contenu de cet article porte sur ce qu'est une grande table dans MySQL ? Qu'est-ce qui est grave ? Comment y faire face ? 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 vous sera utile.

Préface

Relativement parlant, dans quelles circonstances une table de base de données peut-elle être qualifiée de « grande table » ?

  • Lorsque les données d'une table dépassent des dizaines de millions de lignes, cela aura un impact sur la base de données

  • Lorsque le fichier de données de la table est énorme, les données de la table Le fichier dépasse 10G (la valeur des données est relative au matériel)

L'impact des grandes tables

L'impact des grandes tables sur les requêtes

Requête lente : il est difficile de filtrer dans un certain laps de temps Extraire les données requises
(Exemple : ordres d'affichage, peu de sources, faible différenciation, grande quantité d'E/S disque, efficacité du disque réduite, requête lente)

Le impact des grandes tables sur les opérations DDL

1. La création d'un index prend beaucoup de temps

Risque :

La création d'un index version MYSQL< >Version MYSQL>= 5.5 Bien que la table ne soit pas verrouillée, cela entraînera un retard maître-esclave

2 La modification de la structure de la table nécessite de verrouiller la table pendant une longue période

Risque : <.>

Cela entraînera un long délai maître-esclave

affectera les opérations normales de données


Comment y faire face Grandes tables dans la base de données

1. Divisez une grande table en plusieurs petites tables

Difficultés :

Sélection des clés primaires pour les divisions de tables

Requête des données inter-partitions après division de table et statistiques

2. Archivage des données historiques de grandes tables
Avantages :

Réduire l'impact sur les activités front-end et back-end

Difficultés :

Durée d'archivage Sélection des points

Comment effectuer les opérations d'archivage

Qu'est-ce qu'une transaction ?

La transaction est l'une des fonctionnalités importantes qui distingue le système de base de données de tous les autres systèmes de fichiers
  • Une transaction est un ensemble de SQL atomique. Ou une unité de travail indépendante
  • Les exigences de transaction sont conformes à : l'atomicité, la cohérence, l'isolement, la durabilité
  • Atomicité des transactions
Une transaction doit être considérée comme la plus petite unité de travail qui ne peut pas être séparé. Toutes les opérations de la transaction entière sont soumises avec succès ou toutes échouent. Pour une transaction, il est impossible d'effectuer seulement une partie des opérations.

Par exemple :

1. Vérifiez si le solde du compte financier est supérieur à 2 000 yuans

2. Soustrayez 2 000 yuans du solde du compte financier

3. Ajoutez à l'actif compte de dépôt 2000 Yuan

Toutes les opérations de l'ensemble de la transaction sont soit soumises avec succès, soit toutes les opérations échouent et sont annulées.
Cohérence des transactions

La cohérence signifie qu'une transaction convertit la base de données d'un état de cohérence à un autre état de cohérence. L'intégrité des données dans la base de données n'est pas détruite avant le début et après la fin de la transaction.

Isolement des transactions

L'isolement nécessite que la modification des données dans la base de données par une transaction ne soit pas visible par les autres transactions avant que la soumission ne soit terminée.

Quatre types de niveaux définis dans le standard SQL (isolation de bas en haut) (concurrence de haut en bas)

LECTURE UNCOMMITED

Lecture validée (READ COMMITED)

Répétable read (REPEATABLE READ)

Sérialisable (SERIALIZABLE)
Durabilité de la transaction
Une fois la transaction validée, ses modifications seront sauvegardées pour toujours Dans la base de données, même si le système plante à ce moment, les données modifiées qui a été soumis ne sera pas perdu.

Qu'est-ce qui est grave ?

Transactions qui prennent beaucoup de temps à s'exécuter et exploitent beaucoup de données

Risque :

Verrouillez trop de données, provoquant de nombreux blocages et délais d'attente de verrouillage

Return Rolling prend beaucoup de temps

Le temps d'exécution est long et il est facile de provoquer un retard maître-esclave


Comment gérer des transactions volumineuses ?

Évitez de traiter trop de données à la fois
  • Supprimez les opérations SELECT inutiles au sein d'une transaction

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:
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