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 :

Question d'optimisation lors d'un calcul sql


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut Question d'optimisation lors d'un calcul sql
    Bonjour,
    Question d'optimisation
    Quel est la meilleur option parmi les 3

    Option 1 j'ai la marges_jours en dure dans la base
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `marge`, `jrs_posit`, `ma_jrsp`

    Option 2 je n'ai pas la marge/jrs dans la base je la calcule
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `marge`, `jrs_posit`, (marge/jrs_posit) AS `ma_jrsp`

    Option 3 je demandes à sql les infos puis je fais le calcule via php
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `marge`, `jrs_posit`
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ marge = marge
    $ jrs_posit = jrs_posit
    $ ma_jrsp = $marge/$jrs_posit

    à priori je répondrais option 2 mais quel est votre avis?
    Les 3 options sont elles kiff kiff?(peu import)

    option 1 -> je pensais l'écarter car il fait faire la lecture d'une donnée en plus plutôt q'un calcule
    Je pensais à l'option 2 car il est plus interessant de faire faire le calcule par mysql que d'avoir la donnée écrite en dure car cela fait une lecture en moins => est-ce correct?
    Option 3 -> je pense à l'écarter car l'on pert du temps vu que le calcule peut directement être fait par sql.

    Merci d'avance pour vos explications

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Option 2 sans hésitation pour les mêmes raisons que tu avances
    Quel est l'ordre de volume des données à compiler ?

  3. #3
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut
    Actuellement 300 k lignes par la suite entre 300 et 500k lignes à analyser.
    Mais la question est également une question général.
    Vaut-il mieux à priori question vitesse refaire les calcules ou entrer les données dans la bdd.
    => à partir de quel moment est-il plus interessant de passer de l'un à l'autre?

    Est-ce mieux du coup de refaire le calcule à chaque fois ou de faire une vue?
    Je n'ai pas encore très bien compris comment fonctionnaient les vues

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    alors cela va dépendre du matériel qui fait tourner le moteur.
    Généralement, 300k ou 500k avec un calcul aussi simple c'est quasiment instantané.
    Toi je pense tu dois quand même paginer non ? Ça doit donc faire sacrément chuter le volume de lignes à traiter, non ?
    Donc à petit volume, tous les choix sont valables.

    Par contre, quand tu as des calculs lourds et sur un volume important de données, la meilleur solution c'est les vues matérialisées.
    Pour ça, il faut que ton moteur propose cette fonctionnalité.

  5. #5
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    Par défaut
    non je vais construire un graphique avec ces données mais oui je n'en prendrai que quelques une c'était pour confirmer ma logique ainsi que surtout faire les éléments par les bons procédés
    De plus vérifier ma logique

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je serai moins catégorique que rawsrc.

    Si tu ne récupérais pas `marge` et `jrs_posit`, , je dirais aussi option 2 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (marge/jrs_posit) AS `ma_jrsp`

    Mais là, vu que tu les récupères, je ne suis pas persuadé qu'il faille "alourdir" les résultats d'une 3ème colonne.
    Et vu que de toute façon, il y aura traitement/manipulation de données en PHP, je choisirais alors l'option 3.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `marge`, `jrs_posit`

    Mais bon.
    Il faudrait faire des tests de performance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/05/2006, 19h00
  2. probleme lors d'une requete sql (controle non activé)
    Par junty dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 09/09/2005, 15h45
  3. Optimisation du code des ordres SQL
    Par Titouf dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/08/2005, 22h08
  4. :?: question d'optimisation!
    Par Stopher dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/06/2004, 17h15
  5. Optimisation en c du calcul du ppcm
    Par KORTA dans le forum C
    Réponses: 3
    Dernier message: 05/09/2003, 08h23

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