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

Requêtes MySQL Discussion :

Question relative à l'optimisation


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Par défaut Question relative à l'optimisation
    Bonjour,

    Soit un script contenant plusieurs requêtes, certaines obligatoires, d'autres exécutées suivant la situation. À l'heure actuelle, la connexion à la base MySQL n'est jamais fermée. Les requêtes obligatoires sont généralement exécutées au début, puis suivant les conditions remplies, d'autres requêtes sont exécutées un peu plus loin.

    Je souhaite optimiser le code, 3 choix s'offrent à moi :

    - Je laisse le code tel quel en fermant la connexion MySQL après chaque requête, et je reconnecte avant chaque nouvelle requête à exécuter. Ce que je crains avec ce genre de pratique, c'est qu'étant limité à 10 connexions MySQL en même temps, la connexion soit possible à un moment du script, puis qu'à la requête suivante, il y ait trop de monde connecté et que ça bloque l'exécution du script à plusieurs endroits.

    - Deuxième possibilité, j'exécute toutes les requêtes en début de script, y compris celles non indispensables. Le serveur exécute donc certaines fois des requêtes inutiles, ce qui lui fait perdre du temps, mais libère rapidement la connexion. Un autre problème se pose, tous les paramètres nécessaires à la création de la requête ne sont peut être pas encore disponibles.

    - Dernière possibilité, je revois tout le code afin de concentrer au maximum toutes les requêtes. Dans ce cas, je ne suis pas assuré de pouvoir optimiser mon code afin de les concentrer suffisamment, et je ne dispose pas obligatoirement du temps nécessaire pour faire ce travail !

    Il n'y a pas de solution miracle, et vos réponses peuvent dépendre en grande partie de l'organisation de mon code, de mes requêtes, et de l'importance des différentes tables traitées. Je n'attends pas à proprement parler de solution définitives, mais plutôt vos sentiments, des principes qui pourraient m'aider à optimiser.

    Merci pour votre attention, et vos éventuels conseils !

    Guillaume

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Citation Envoyé par Maelikk Voir le message
    ... et vos réponses peuvent dépendre en grande partie de l'organisation de mon code...
    Et sans le code, ça ne va pas être facile.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Par défaut
    Bonjour Jeca, merci de te pencher sur mon problème !

    Ma façon de programmer (non conventionnelle a priori - plusieurs fonctions dispatchées dans plusieurs fichiers qui s'échangent connexion à MySQL, requêtes et informations diverses) me permet difficilement de montrer mon code, et quand bien même je ne veux pas que vous perdiez du temps à tout comprendre. J'ai peut être tord, de cette façon, vous pourriez sans doute m'aider à mieux organiser mon code (ça mérite réflexion, mais je réserve cette remise en question pour quand j'aurai un peu plus de temps).

    Je vais donc me permettre de résumer mon code à défaut de le montrer. Le site est un moteur de recherche. La première requête est déterminée en fonction de la recherche de l'internaute, jusque là, pas de souci. Suivant la recherche, le script affiche d'abord les résultats, puis propose des requêtes complémentaires. Là où il y a un hic, c'est que je ne veux pas que ces propositions aboutissent à aucun résultat, le script teste donc les requêtes complémentaires, et ne les affiche que s'ils elles ont un résultat.

    Un exemple sera bcp plus parlant. Un internaute fait une recherche sur un critère dans son département. Dans ce cas de figure, le script connaît une dizaine de requêtes complémentaires pouvant intéresser l'internaute, par exemple, le même critère dans la région ou les départements limitrophes, un critère similaire dans le même département, etc. Le script teste alors tour à tour ces requêtes de la plus pertinente (ayant moins de chance d'obtenir un résultat) à la plus large (le même critère sur l'ensemble du territoire par exemple). Dés qu'il a trouvé deux requêtes ayant des résultats, il compte les résultats, puis propose ces deux requêtes à l'internaute sous la forme d'une ancre.

    Le fait de vous décrire mon problème, m'aide à trouver des solutions ! Je me rends compte que je cherche à concentrer l'exécution de mes requêtes en début de script, alors que rien ne m'empêche de déterminer toutes mes requêtes, pour ne les exécuter qu'à la fin, toutes ensemble !

    Je pense avoir trouvé une solution satisfaisante, il ne me reste plus qu'à la mettre en oeuvre ! La difficulté étant avec ma façon de programmer (vraiment à revoir) qu'il va falloir que je trimballe certaines requêtes de fonction en fonction jusqu'à la fin du script, peut être par le biais d'un tableau. Rien que d'y penser, ça ne m'enchante pas plus que ça !

    Si vous avez des remarques complémentaires, elles demeurent les bienvenues

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/05/2006, 07h50
  2. Questions relatives au fonctionement des threads
    Par pier* dans le forum Réseau
    Réponses: 7
    Dernier message: 24/05/2006, 22h11
  3. [Librairies] Questions relatives à l'impression de documents
    Par Ronin dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/12/2005, 15h53
  4. [Certification]Question relative
    Par chady dans le forum Général Java
    Réponses: 2
    Dernier message: 25/01/2005, 10h30

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