Supprimer une table de plusieurs millions d'enregistrement

Signaler
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
-
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
-
Bonjour,
j'avais lancé un script (ou il y avait une erreur que malheureusement j'ai constaté un peu tard) du coup ça a généré plusieurs millions d'enregistrements.
Le soucis maintenant c'est que je n'arrive pas à supprimer cette table ni à partir de mysql ni par script car apparement le temps d'execution est trop long, j'ai essayé meme de supprimer des enrengistrement par lots meme de 30 mais sans resultat.
Si vous avez des propositions je suis preneur.
A voir également:

8 réponses

Messages postés
14686
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 août 2020
144
As-tu essayé avec Truncate (mot clé SQL) ?
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

oui bien sur, a partir de mysql mais sans résultats
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
4
Bonjour,

Pour le DELETE, vous mettez quoi comme condition?

Si la condition porte sur un champ non indexé, ça explique les lenteurs.

Indexez le champ sur lequel vous faites la condition WHERE, par exemple, si c'est date_creation, vous indexez ce champ, ensuite vous faites votre DELETE:

DELETE * FROM ma_table WHERE date_creation = "2014-12-06"


A+
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Bonjour,

Pour quoi ne pas créer une table temporaire de même structure, dans laquelle tu insères les enregistrements valides de ta table d'origine ?
Tu droppes ensuite la table d'origine, la recrée, et y réinsère les enregistrements que tu auras gardé dans ta table temporaire (que tu droppes ensuite à son tour)
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

le truc c'est que le drop ne marche plus ni trancate d'ailleurs vue que la table fait presque un Go alors le temps d'execution est très long et par lasuite stoppé par le serveur.
Aucune opération ne marche.
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
C'est étonnant... et inquiétant de la part de mySQL...
Sinon, refais une nouvelle base ?
Est-ce que le select sur les enregistrements valables fonctionne ?
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
4
Bonjour,

Bon, ben moi j'ai suggéré quelque chose, mais pas de réponse.....

Donc, je répète, indexer sur le champ sur lequel vous faite des 'WHERE.....'

J'ai géré des bases en mySQL de plus de 1go, et j'ai "bluffé" des pros qui avaient oublié ce détail.... Résultat, des requètes de 10 minutes exécutées en 10 secondes!!!

A vous de persister dans le bricolage ou écouter l'avis de pros....

A+
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

dsl mpmp93, j'ai cru que j'avais répondu a ta proposition.
mais quand je lance la requete d'indexation ça beugue aussi.
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
4
Ca bugge comment?

Une base mySQL c'est très robuste.

Néanmoins, il arrive qu'il y ait corruption de données.

Avez-vous fait régulièrement une sauvegarde?

A+
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

wi j'ai deja une sauvegarde mais pour restaurer la bd meme histoire message de 'chargement en cours' affiché mais rien ne se passe.