Supprimer une table de plusieurs millions d'enregistrement

Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
- - Dernière réponse : alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
- 20 déc. 2014 à 18:33
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.
Afficher la suite 

8 réponses

Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
As-tu essayé avec Truncate (mot clé SQL) ?
Commenter la réponse de NHenry
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
0
Merci
oui bien sur, a partir de mysql mais sans résultats
Commenter la réponse de alone06
Messages postés
6709
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
4
0
Merci
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+
Commenter la réponse de mpmp93
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
11
0
Merci
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)
Commenter la réponse de sp40
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
0
Merci
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.
Commenter la réponse de alone06
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
11
0
Merci
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 ?
Commenter la réponse de sp40
Messages postés
6709
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
4
0
Merci
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+
Commenter la réponse de mpmp93
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
0
Merci
dsl mpmp93, j'ai cru que j'avais répondu a ta proposition.
mais quand je lance la requete d'indexation ça beugue aussi.
mpmp93
Messages postés
6709
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+
alone06
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.
Commenter la réponse de alone06