Maison > base de données > tutoriel mysql > Comment supprimer rapidement les doublons d'une base de données MySQL massive ?

Comment supprimer rapidement les doublons d'une base de données MySQL massive ?

Barbara Streisand
Libérer: 2024-12-29 22:36:12
original
674 Les gens l'ont consulté

How to Quickly Remove Duplicates from a Massive MySQL Database?

MySQL : Supprimez rapidement les doublons d'une base de données massive

Les rencontres avec de vastes bases de données MySQL entachées d'entrées en double exigent une résolution rapide, en particulier dans les scénarios où le temps est essentiel. En raison des inquiétudes concernant le temps d'exécution des requêtes, l'une de ces bases de données, comprenant plus d'un million de lignes, a été criblée de doublons, occupant potentiellement jusqu'à la moitié de sa capacité de stockage.

L'objectif est de nettoyer rapidement la base de données, en identifiant les éléments uniques. combinaisons de "text1" et "text2", tout en préservant un seul enregistrement avec une valeur "text3" non nulle pour chaque combinaison unique. Ce processus évite la perte de données et garantit leur intégrité.

Les approches conventionnelles telles que DISTINCT et GROUP BY, bien qu'efficaces sur des bases de données plus petites, se sont révélées inadéquates, les temps d'exécution des requêtes dépassant le seuil de 20 minutes. Par conséquent, la recherche d'une solution plus efficace est lancée.

L'une de ces solutions, exploitant la puissance combinée de "ON DUPLICATE KEY" et "IFNULL()", offre des performances exceptionnelles :

CREATE TABLE tmp LIKE yourtable;

ALTER TABLE tmp ADD UNIQUE (text1, text2);

INSERT INTO tmp SELECT * FROM yourtable
ON DUPLICATE KEY UPDATE text3=IFNULL(text3, VALUES(text3));

RENAME TABLE yourtable TO deleteme, tmp TO yourtable;

DROP TABLE deleteme;
Copier après la connexion

Cette approche excelle en évitant les opérations gourmandes en ressources telles que GROUP BY et DISTINCT. Il contourne également les problèmes de performances associés au tri des fichiers, un obstacle majeur pour les grandes tables temporaires. Bien qu'une analyse complète de la table d'origine reste inévitable, cette solution optimisée constitue l'approche la plus efficace pour supprimer les doublons pour les bases de données volumineuses.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal