Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.php > #2969
| From | Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> |
|---|---|
| Newsgroups | fr.comp.lang.php |
| Subject | Re: Nettoyer les variables |
| Date | 2017-01-17 14:13 -0500 |
| Organization | Les Productions FrancoGene |
| Message-ID | <btqs7ctaaa04qgcksbbv179efgch09p6jm@4ax.com> (permalink) |
| References | <je4a7cl91kvugmlg35h8go8oa5vspdoq8g@4ax.com> <o5lh5e$c49$1@cabale.usenet-fr.net> <ihjs7c95qn2o7qv28a3tos8s5cc1d55gjh@4ax.com> <o5llno$d3t$1@cabale.usenet-fr.net> |
Le Tue, 17 Jan 2017 18:54:01 +0100, Olivier Miakinen
<om+news@miakinen.net> écrivait dans fr.comp.lang.php:
>Le 17/01/2017 18:12, Denis Beauregard m'a répondu :
>>>
>>>J'ai déjà une question : comment ton programme suite.php sait-il
>>>où en était l'itération précédente ? En particulier, si plusieurs
>>
>> L'utilisation est privée. Je compile des données chez moi et
>> je suis le seul à utiliser ces applications en local.
>
>Ok, donc la machine cliente est identique à la machine serveur, ce
>qui ne facilite pas la distinction entre les deux. Mais tu passes
>quand même par un navigateur web qui fait des requêtes au serveur
>web, probablement sur localhost ?
En fait, quand je suis passé à wampserver 3, localhost ou 127.0.0.1
est devenu un nom virtuel et je lance donc mes applications depuis
http://gfan/index.php
>La page web rendue par ton script ne comporte donc aucun code
>JavaScript.
Exact. PHP et SQL seulement.
>> Une boucle pour chaque ligne, donc 700 000 boucles et chacune
>> comprend plusieurs appels à la base de données (query pour des
>> tables différentes).
>
>On ne se comprend pas. Je te demande en gros combien il y a de
>requêtes SQL pour une requête HTTP.
Une requête HTTP par 30 secondes, et environ 35 000 requêtes
SQL à chaque fois.
>Sauf erreur de ma part, le scénario est le suivant (art ASCII
>à voir avec une police à chasse fixe) :
>
>===========================================================
> Navigateur Web Serveur Web
> -------------- -----------
>
> Requête HTTP
> ---------------->
> Script PHP
> avec requêtes SQL
> <----------------
> Réponse HTTP
>
> (attente 30 secondes)
>
> (etc.)
Plutôt :
Navigateur Web Serveur Web
-------------- -----------
Requête HTTP
---------------->
Script PHP
avec requêtes SQL
durant 30 secondes
avec réponses HTTP (les erreurs)
<----------------
Relance HTTP
En bref, mon écran affiche :
des données sur le traitement (numéro de départ, paramètres de
départ, étape), puis mon fichier d'erreurs, puis quand il y a une
erreur dans mes données (par exemple, le champ français est
renseigné mais pas le champ anglais), il y a un message. Il y a
aussi le numéro de la ligne courante (une fois par 1000 lignes).
Puis, PHP affiche Fatal error, time out, etc. et relance HTTP.
>===========================================================
>
>Je me trompe ?
Voir plus haut.
>> [...]
>>>
>>>Même question que supra pour les « tours » : de quelle itération
>>>parles-tu ? S'il s'agit de requêtes HTTP différentes, les variables
>>>doivent repartir à chaque fois dans l'état « non initialisé »,
>>>il n'y a donc rien à vider. Ou alors c'est un vrai bug du moteur
>>>PHP.
>>
>> Durant les 30 secondes d'un cycle, je peux boucler 5000 fois.
>
>Je ne comprends pas ça. Pour moi, les 30 secondes démarrent lorsque
>le serveur Web a rendu une réponse à la requête HTTP, réponse qui
>comporte un entête « http-equiv ». Pendant ces 30 secondes, tu ne
>peux pas boucler une seule fois puisque le programme PHP n'existe
>pas.
Pas tout à fait. L'en-tête est:
<meta http-equiv="refresh" content="1;url=suite.php"
Pas de durée. C'est réellement le script qui plante après 30 secondes
et donc la relance suit.
>> [...]
>>>
>>>Est-ce que tu peux avoir des statistiques sur le nombre de requêtes
>>>HTTP par minute, et sur la durée moyenne de traitement d'une requête ?
>>>Si tu as régulièrement une requête lancée toutes les 30 secondes
>>>mais que chacune d'entre elles dure 40 secondes, alors il est normal
>>>qu'au bout d'un moment ça sature.
>>
>> Je peux faire 15000 boucles dans une minutes et chaque boucle peut
>> disons faire 5 query en SQL. Donc je peux faire 75 000 appels à SQL
>> (le plus souvent des SELECT, parfois des INSERT) durant une minute.
>
>Je ne posais pas la question des requêtes SQL mais des requêtes HTTP.
>
>Seulement il faut déjà éclaircir le «
> Durant les 30 secondes d'un cycle, je peux boucler 5000 fois.
>» car ça me semble tout bonnement impossible.
Dit autrement :
entre deux requêtes HTTP (30 secondes), je peux boucler 5000 fois,
soit avancer de 5000 lignes dans la table à traiter. Pour chaque
ligne, je peux vérifier d'autres informations et donc avoir d'autres
énoncés SQL. En gros :
SELECT pour avoir la ligne à traiter (par exemple, un couple de
personnes mariées)
pour ce couple, je peux par exemple vérifier si le code de région
est valide (donc, un gros switch en PHP), si le code de la source
est valide (donc, une requête SQL parmi les 400 sources possibles),
etc. Une fois la ligne validée, je la retranscris dans une autre
table avec un INSERT.
Je répète disons 5000 fois, puis il y a le 30 secondes. Je vais
alors regarder jusqu'où j'ai écrit dans la nouvelle table, je
recule de 1 par précaution, et je recommence.
Le nombre de fois peut varier. 1000, 4526, 7801, etc.
Ce que je voudrais, c'est vider toutes les variables, puis utiliser
le SELECT comme pointeur pour la ligne suivante. Le hic, c'est que
ce serait beaucoup plus lent.
Denis
P.S. Je sais que c'est exactement comme cela qu'on programmait dans
les années 1970 avec un ordinateur central.
Back to fr.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Nettoyer les variables Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> - 2017-01-10 12:14 -0500
Re: Nettoyer les variables Olivier Miakinen <om+news@miakinen.net> - 2017-01-17 17:35 +0100
Re: Nettoyer les variables Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> - 2017-01-17 12:12 -0500
Re: Nettoyer les variables Olivier Miakinen <om+news@miakinen.net> - 2017-01-17 18:54 +0100
Re: Nettoyer les variables Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> - 2017-01-17 14:13 -0500
Re: Nettoyer les variables Olivier Miakinen <om+news@miakinen.net> - 2017-01-20 09:31 +0100
Re: Nettoyer les variables Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> - 2017-01-20 11:32 -0500
Re: Nettoyer les variables Fredchou <fredchou@nospam.free.fr.invalid> - 2017-01-29 18:34 +0100
Re: Nettoyer les variables Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> - 2017-01-30 16:56 -0500
csiph-web