[PHP/MySQL] Optimisation multiples requêtes

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par RomsIW, 24 Juin 2008.

  1. RomsIW
    RomsIW WRInaute passionné
    Inscrit:
    25 Mai 2004
    Messages:
    1 038
    J'aime reçus:
    0
    Bonjour,

    voilà l'idée, je récupère de nombreuses infos dans de nombreuses tables et je fais pas mal de traitements qui impliquent PHP, puis je compile le tout dans une table à part que je dois vider puis re-remplir avec les informations mises à jour. Ce toutes les heures.

    Le processus actuel :

    1. Grosse requête
    2. Traitements PHP
    3. Vidage table
    4. Boucle while avec inserts MySQL

    Questions :
    A. Vaut-il mieux faire 3. Préparer une unique requête étendue (INSERT INTO champs VALUES (ligne1),(ligne2),...) puis 4. vidage table puis 5. exécution requête unique OU faire comme actuellement + de 1000 requêtes dans une boucle ?
    B. Voyez-vous un autre moyen de faire cela ? les traitements PHP ne peuvent être faits directement dans la requête..
    C. Une unique requête étendue semble poser des problèmes visiblement puisque PMA propose d'office de la scinder en 14 plus petites requêtes, qu'en est-il vraiment ?

    Merci de votre aide,
     
  2. Bool
    Bool WRInaute passionné
    Inscrit:
    26 Février 2004
    Messages:
    1 543
    J'aime reçus:
    0
    Hello,

    A. une seule "grosse" requête est souvent plus rapide oui (un seul verrou, une seule mise à jour des indexes, etc).
    Toutefois la requête est limitée en taille, à 1Mo ou 16Mo dans les configurations les plus courantes. Tu peux évidement ajuster cette valeur si tu as un serveur dédié, mais dans tout les cas ne pas oublier que le temps de construire la requête elle est en mémoire coté PHP... donc se contenter de 1Mo me semble déjà bien.
    Pour cela regroupe par "paquets" de 10, 100, ou 1000 selon la taille de chaque "ligne".

    Une autre solution serait sans doute d'utiliser les transactions.


    B. T'es vraiment certain de ne pas pouvoir faire tout via MySQL ?

    C. bah... voir réponse A.
     
  3. 2dm
    2dm WRInaute discret
    Inscrit:
    3 Septembre 2002
    Messages:
    173
    J'aime reçus:
    0
    Idem que bool :)

    Sauf que là :
    - on ne sait pas ce que fait ton programme (log/stat/monitoring, ... ?)
    - on ne sait pas ce qui est bloquant
    - on ne sait pas ce que tu veux optimiser (ton archi, ton temps de traitement, ...)

    Si tu fais des opérations complexes sur les données, peut-être que tu dois envisager une étape supplémentaire. Par exemple tu pourrais compiler des sous-analyses sur une période réduite (tous les 5 minutes). Ainsi lorsque tu ferais ta maj toutes les heures, tu n'aurais qu'à agréger les résultats précédents.
     
Chargement...
Similar Threads - [PHP MySQL] Optimisation Forum Date
[PHP/MySQL] Choix du moteur MyISAM ou InnoDB ? Développement d'un site Web ou d'une appli mobile 14 Janvier 2017
[php/mysql] Eviter de faire 20 requêtes pour un affichage Développement d'un site Web ou d'une appli mobile 19 Janvier 2016
[PHP/MYSQL] Les articles les plus commentés Développement d'un site Web ou d'une appli mobile 22 Octobre 2011
[PHP/MySQL] Excepter une valeur dans un requête SQL en PHP Développement d'un site Web ou d'une appli mobile 18 Septembre 2010
[PHP/MySQL] Compter le nombre de checkbox cochées Développement d'un site Web ou d'une appli mobile 11 Septembre 2010
[PHP/MySQL] Augmenter la valeur de 1 sur une entrée INT Développement d'un site Web ou d'une appli mobile 3 Septembre 2010
[PHP/MYSQL] Besoin d'aide pour la simplification d'une requete Développement d'un site Web ou d'une appli mobile 9 Juillet 2009
[PHP/MYSQL] Action selon le contenu de la variable Développement d'un site Web ou d'une appli mobile 27 Mai 2009
[PHP/MySQL] Problème dans le tri Développement d'un site Web ou d'une appli mobile 26 Août 2008
[php / mysql] Une grosse table ou plusieurs petites tables ? Développement d'un site Web ou d'une appli mobile 8 Avril 2008
[PHP/MYSQL] Une news par page Développement d'un site Web ou d'une appli mobile 20 Mars 2008
[PHP MYSQL] Affecter plusieurs enregistrements Développement d'un site Web ou d'une appli mobile 18 Décembre 2007
[php/MySQL] Tirage au sort avec pondération Développement d'un site Web ou d'une appli mobile 12 Décembre 2007
[résolu][php/MySQL] Problème d'appel à une base Développement d'un site Web ou d'une appli mobile 29 Août 2007
[PHP/MySQL] : se proteger des injections Développement d'un site Web ou d'une appli mobile 26 Avril 2007
[PHP/MySQL] Parser le résultat d'une BDD Développement d'un site Web ou d'une appli mobile 8 Juin 2006
[PHP-MySQL] : argument is not a valid MySQL ressource Développement d'un site Web ou d'une appli mobile 20 Février 2006
[phpMySQL] - Ecarter les colonnes vides Développement d'un site Web ou d'une appli mobile 8 Février 2006
[PHP MYSQL] Synchronisation des requêtes Administration d'un site Web 24 Juin 2005
[PHP/MYSQL] Besoin d'aide dans une requête Administration d'un site Web 17 Juin 2005