Discussion:
Optimiser ? Mais à quoi cela sert-il ???
(trop ancien pour répondre)
Denis Beauregard
2014-10-15 00:59:24 UTC
Permalink
Bonjour,

J'ai écrit un logiciel pour préparer une base de données
généalogiques. En gros, il insère dans une base SQL des
données de fichiers Excel et produit en bout de ligne des
pages web statiques pour consulter ces données. J'ai aussi
une version pour développement qui affiche directement telle
fiche.

Le système comprend plusieurs tables, de 200 000 à 700 000
enregistrements.

J'ai voulu optimiser une des opérations.

Une des tables contient 700 000 enregistrements et je faisais
un select qui prenait 15 secondes sur mon ordinateur portable
ou 2 sur mon ordinateur de tables. Le select était du genre

select table where no = 1234 and code like "a%"

J'ai d'abord remplacé le champ code de texte en varchar mais
cela n'a rien donné.

Ensuite, j'ai mis la donnée requise pour cette opération dans
une autre table (donc, ajout d'un champ) pour avoir plutôt

select table2 where no = 1234

Avant l'optimisation (sic), la génération d'une base html statique
se faisait en 2h 9 min 51 sec. Après, cela a pris 2h 10 m 56 sec !!!

C'est dingue ! J'ai enlevé une opération qui est faite 136 fois et
qui dure 2,1 secondes selon phpmyadmin (donc 4,76 minutes) et cela
prend 1 minute de plus et non 4 minutes de moins. Comme si en ajoutant
un champ, j'aurais ajouté 10 minutes au temps de traitement alors que
je lis cette table avec des select qui reposent sur des champs avec
index.

Optimiser ? Mais à quoi cela sert-il ?


Denis
Olivier Miakinen
2014-10-15 15:36:46 UTC
Permalink
[optimisations base de données]
Optimiser ? Mais à quoi cela sert-il ?
Certes, mais quel rapport avec PHP ? Tu ferais ces requêtes depuis un
programme en C ou en Fortran, je pense que ça ne changerait rien au
temps d'exécution...

Je te suggère de publier plutôt cette expérience dans le groupe
fr.comp.applications.sgbd, et peut-être même auras-tu des explications
sur ce comportement, ou des conseils pour améliorer les choses !

Cordialement,
--
Olivier Miakinen
Denis Beauregard
2014-10-15 16:46:55 UTC
Permalink
Le Wed, 15 Oct 2014 17:36:46 +0200, Olivier Miakinen
Post by Olivier Miakinen
[optimisations base de données]
Optimiser ? Mais à quoi cela sert-il ?
Certes, mais quel rapport avec PHP ? Tu ferais ces requêtes depuis un
programme en C ou en Fortran, je pense que ça ne changerait rien au
temps d'exécution...
C'est écrit en PHP avec EasyPHP. Mais c'est vrai que le problème
est sans doute plutôt relié à SQL ou mySQL.
Post by Olivier Miakinen
Je te suggère de publier plutôt cette expérience dans le groupe
fr.comp.applications.sgbd, et peut-être même auras-tu des explications
sur ce comportement, ou des conseils pour améliorer les choses !
Bonne idée. C'est fait.


Denis

Continuer la lecture sur narkive:
Loading...