IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Imposer un temps de repos sur une requête


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    Bonjour,

    Avant tout, il ne s'agit pas d'un problème mais plutôt d'une amélioration de mon code pour éviter de surcharger la requête...

    Je souhaite modidifier la valeur d'un champs, si la comparaison de la date du jour et celle de ma base est plus élevée de 5 jours, je modifie la valeur de mon champs checkyule à 2 (initialement il est à 0)

    voilà le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php 
     
    // +------ nombre de jour avant de demander la visite du robot et de mettre le check à 2 -------+
     
    $nb_jour_histo = "5";
    $robot = "2";
    $calcul ="date < DATE_SUB(CURRENT_DATE, INTERVAL $nb_jour_histo DAY)";
     
    // +------ on purge les vieux textes... -------+ 
     
    mysql_query('SET NAMES utf8');
    $update = mysql_query("UPDATE $tableannu SET checkyule='".$robot."' WHERE $calcul ")or die(mysql_error()); 
    echo"<center><h1><strong style='color:green'>Modifications prises en compte !</strong></h1></center><br />";
     
    	?>

    Tout ceci fonctionne très bien (à mon niveau...) maintenant et pour le futur, si j'ai plus de 1000 lignes à lire pour faire cette mise à jour, ça va chauffer
    Comment peut-on par exemple, imposer une pause de 10 secondes toutes les 100 lignes directement dans ma requête ?

    Je sais pas si je suis compréhensible..

    Cordialement
    Yule

    Re

    Est-ce que ceci pourrait faire l'affaire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $i++;
    if (!($i%20))
    flush();
    J'ai trouvé ça... Ca veut bien dire => toutes les 20 enregistrements, fait une pause ?

    Ca éviterait le "timeout" ? et ou une surcharge ?

    Cordialement
    Yule

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Tu as une requête qui va mettre à jour 1000 enregistrements, la belle affaire. Ceci est une petite requête.

    MySql est un grand garçon et va s'en tirer sans que tu aies besoin de l'aider, fait des essais avec 10^4 et tu verras, cela passera...

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    Même avis.

    ça ne sert à rien de chercher des optimisations de ce genre avant d'avoir le probleme et de pouvoir mesurer l'effet de la solution.

    -> d'abord plusieurs requetes font plus décriture dans ton redo log;
    -> ensuite selon ta gestion des transactions tu peux bloquer la base jusqu'au dernier update.

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/08/2014, 18h16
  2. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 11h12
  3. Affichage du temps d'exécution d'une requête
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 17h48
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo