PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#2 Re : Général » requete sql lente » 29/04/2014 15:45:49

voici la requete avec explain :

id    Select_type    table                         type                                 Possible_keys             key                          Key_len             rows                        extra
1    SIMPLE    Spip_mots_articles             index                        Primary,id_mot             primary                    16                    8006                  Using index
1    SIMPLE    Spip_articles                     Eq_ref                        Primary,id_rubrique     primary                     8                     1   
1    SIMPLE    Spip_auteurs_articles             ref                                Primary,id_article             Id_article                     8                     1                  Using where
1    SIMPLE    Spip_documents_liens            index                            NULL                                     primary                    93                  1513               Using index
1    SIMPLE    Spip_documents              Eq_ref                      PRIMARY                            primary                    8                    1   
1    SIMPLE    Spip_auteurs                    Eq_ref                      PRIMARY                        primary                    8                     1   
1    SIMPLE    Spip_mots                            Eq_ref                      PRIMARY                        primary                    8                     1   
1    SIMPLE    u                                    Eq_ref                      Primary,id_parent            primary                    8                     1                  Using where
1    SIMPLE    e                                    Eq_ref                      PRIMARY                      primary                    8                      1   
1    SIMPLE    j                                    Eq_ref                      PRIMARY                            primary                    8                     1   

pour la table temporaire elle se gere automatiquement merci pour votre aide smile

#3 Re : Général » requete sql lente » 29/04/2014 12:22:18

le profilage:

starting 0.000182
Opening tables 0.000046
System lock 0.000030
Table lock 0.000016
init 0.000078
optimizing 0.000031
statistics 0.000074
preparing 0.000033
Creating tmp table 0.008222
executing 0.000005
Copying to tmp table 4.344438
Sending data 0.000173
end 0.000003
removing tmp table 0.004125
end 0.000019
query end 0.000005
freeing items 0.000245
logging slow query 0.000003
cleaning up 0.000012

#4 Re : Général » requete sql lente » 29/04/2014 00:52:03

je n'ai pas accès actuellement au serveur je les mettrai demain  pour le moment c ce que j'ai
starting 0.000182
Opening tables 0.000046
System lock 0.000030
Table lock 0.000016
init 0.000078
optimizing 0.000031
statistics 0.000074
preparing 0.000033
Creating tmp table 0.008222
executing 0.000005
Copying to tmp table 4.344438
Sending data 0.000173
end 0.000003
removing tmp table 0.004125
end 0.000019
query end 0.000005
freeing items 0.000245
logging slow query 0.000003
cleaning up 0.000012

#5 Général » requete sql lente » 29/04/2014 00:11:25

tic1992
Réponses : 7

Bonjour j’implémente un moteur de recherche avancé pour un site web et voici ma requête sql
SELECT DISTINCT spip_articles.titre AS t, spip_articles.id_article,spip_articles.id_rubrique,j.titre o, e.titre v, u.titre a, spip_documents.contenu AS c,spip_documents.fichier, u.id_secteur, spip_auteurs.nom AS d,spip_mots.titre AS f FROM spip_articles
        LEFT JOIN  spip_auteurs_articles  ON spip_auteurs_articles.id_article= spip_articles.id_article
        LEFT JOIN spip_auteurs  ON spip_auteurs.id_auteur= spip_auteurs_articles.id_auteur
        LEFT JOIN  spip_rubriques u  ON  u.id_rubrique = spip_articles.id_rubrique
        LEFT JOIN  spip_rubriques e  ON  u.id_parent = e.id_rubrique
        LEFT JOIN  spip_rubriques j  ON  e.id_parent = j.id_rubrique
        LEFT JOIN spip_mots_articles  ON spip_mots_articles.id_article=spip_articles.id_article
        LEFT JOIN spip_mots  ON spip_mots.id_mot=spip_mots_articles.id_mot
        LEFT JOIN spip_documents_liens ON spip_documents_liens.id_objet=spip_articles.id_article
        LEFT JOIN spip_documents ON spip_documents.id_document=spip_documents_liens.id_document
        WHERE ((spip_articles.titre LIKE '".$_GET['mot']."' OR spip_articles.chapo LIKE '".$_GET['mot']."'' OR spip_auteurs.nom LIKE '".$_GET['mot']."' OR u.titre like '".$_GET['mot']."' OR match(spip_documents.contenu) against ('".$_GET['mot']."' IN boolean mode))"

au moment de l'exécution sa prend du temps "57s" alors si quelqu'un a une idée sur l'optimisation de cette requête je serai très reconnaissante big_smile

Pied de page des forums

Propulsé par FluxBB