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

 MySQL Discussion :

Optimisations mysql sur les requêtes SELECT: index


Sujet :

MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Optimisations mysql sur les requêtes SELECT: index
    Salut à tous,

    j'ai developpé il y a quelques temps un forum php pour mon site Internet. Je dois dire que lorsque j'ai commencé à developper mon script, j'étais vraiment débutant en php et encore plus à tout ce qui touche aux notions de bases de données. Bref, mon site accueille aujourd'hui plus de 5000 visiteurs/jour et j'ai pu constater que mon forum, qui était jusqu'à maintenant plutôt rapide, commencait à sérieusement ralentir (surcharge cpu du serveur) depuis que le nb de visiteurs avait augmenté, et surtout que la bdd avait grossi (21000 messages postés et 3500 membres inscrits)
    J'ai lu quelques articles traitant des optimisations sql a effectuer lors des requetes SELECT (une page ralentit particulièrement, celle permettant d'afficher le contenu d'un forum et qui comporte une requete sélectionnant les 40 derniers derniers sujets) et il semblerait qu'indexer des colonnes sur lesquelles portent des conditions WHERE puisse considérablement accélérer le temps d'execution de la requête.
    Dans mon cas, ma requête ressemble à ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id,rep,vues,postdate,pseudo,message,titre,cat,lpost,statut from forum WHERE&#40;cat='$idcat' AND rep='0' AND statut<>1&#41; ORDER BY lpost DESC LIMIT 0,$nbtopics
    Mes conditions de sélection d'un enregistrement se basent donc sur 3 conditions sur les champs cat, rep et statut.

    Mes questions sont: Faut il ajouter un index sur ces 3 champs? Si oui, le fait que ma base de données ne soit pas vide ne pose t'il pas un problème? (J'ai lu qu'il était possible de créer des index après avoir défini ses tables et après y avoir inséré des enregistrements) Quelles tailles donner aux clefs?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Il vaut mieux faire un index apres qu'il y ait plusieurs données plutot que l'inverse.

    Oui, il est avantageux de mettre un index. Un sur chacun des champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE INDEX Nom_Index ON Nom_Table&#40;Nom_Colonne&#41;
    si je me souviens bien. A verifier

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  3. #3
    Candidat au Club
    Inscrit en
    Mai 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Ca y est c'est fait...
    Les gains sont hallucinants...

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

Discussions similaires

  1. GROSSES lenteurs sur les requêtes MySQL
    Par bzhvarik dans le forum VB.NET
    Réponses: 6
    Dernier message: 03/06/2010, 14h57
  2. Renseignements sur les requêtes
    Par Virgile59 dans le forum Access
    Réponses: 1
    Dernier message: 07/02/2006, 21h09
  3. Calcul de Statistics sur les requêtes
    Par Rahustro dans le forum Oracle
    Réponses: 3
    Dernier message: 17/01/2006, 07h19
  4. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 11h57
  5. [Optimisation] Problème sur une requête UNION.
    Par françois62 dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/06/2005, 17h08

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