[Temps d'execution] Comment faire proprement?

Comment faire proprement? [Temps d'execution] - PHP - Programmation

Marsh Posté le 27-10-2003 à 16:33:14    

salut,
 
J'ai une appli munie d'une purge semi-manuel.
Un bouton séléctionne l'ensemble des infos à supprimer et place un flag dessus (une colonne qui passe à -1 pour les futures infos à supprimer, 0 en temps normal pour des infos valides, et 1 pour des infos à conserver absolument)
 
Ensuite des hommes vérifie la qualité de la préselection, et repasse en 0 ou 1 les infos mal séléctionnés.
 
Une fois ce check acompli, on lance la purge réelle.
 
Soit une séléction sql de tout les enregistrement à -1, et pour chaque ligne trouvé on appel une fonction de suppression (cause pas de notion de clé étrangère dans MySQL 3.23...).
Le problème est simple : temps d'execution trop long pour les grosses purges. Comment gérer ça?
 
Merci pour qq pistes :jap:

Reply

Marsh Posté le 27-10-2003 à 16:33:14   

Reply

Marsh Posté le 27-10-2003 à 16:51:53    

les tables innoDB ont la notion de clef étrangère dans MySQL

Reply

Marsh Posté le 27-10-2003 à 17:08:47    

Pourquoi ne pas récupérer les infos de clé étrangère directement dans le formulaire ? Ca te permettra de deleter les lignes filles sans avoir besoin de faire un select pour chaque ligne à supprimer. Evidement, l'affichage du premier écran sera un peu plus lent, mais bon, ça permet de répartir la charge entre les différentes étapes du process...

Reply

Marsh Posté le 27-10-2003 à 19:03:45    

Il est peut être possible de construire la liste des infos à supprimer.
D'abord, une requête qui sélectionne les id à supprimer et en construit la liste. Puis les suppressions dans les autres tables à partir de cette liste :
DELTE FROM table2 WHERE id IN (id1, id2, id3)


Message édité par mrbebert le 27-10-2003 à 19:04:10
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed