Optimiser ? Mais

Le
Denis Beauregard
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #26315287
Le 15/10/2014 02:59, Denis Beauregard a écrit :

[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
Le #26315299
Le Wed, 15 Oct 2014 17:36:46 +0200, Olivier Miakinen

Le 15/10/2014 02:59, Denis Beauregard a écrit :

[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.

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
Publicité
Poster une réponse
Anonyme