Requetes SQL : solution la plus rapide ?

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1795
Inscription: Lun Jan 08, 2007 21:48

Requetes SQL : solution la plus rapide ?

Message le Sam Aoû 23, 2008 0:54

Bonjour,

Voilà, j'ai un forum et certains topics commencent par le tag [actualite].

Je vais faire une requête pour afficher uniquement les topics qui commencent par ce tag.

Qu'est-ce qui est le plus rapide selon vous :

1) Faire un premier tri très rapide, seulement sur le premier caractère, en l'occurence "[" et puis ensuite trier dans le tableau obtenu les résultats qui correspondent, sachant que j'ai des tags [actualite] mais aussi [vidéos] etc... ?

2) Ou alors faire une requête un peu plus complexe qui ramène seulement les tuples qui commencent par le tag [actualite] ?


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Sam Aoû 23, 2008 7:16

Faire un like '[actualite]%' directement ?


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Sam Aoû 23, 2008 9:44

J'aurais utilisé dès le départ un champ dédié au tag, afin d'en permettre l'indexation :D

Autre solution : mettre à jour à interval régulier une seconde table, qui ne contiendrait que l'ID des topics en question.
Les "like" pour ma part je ne m'en sert que pour les recherches, surtout pas dans l'usage courant du site.

Après ça dépend du volume aussi, selon la taille du forum pas besoin de s'embêter et un like remplira parfaitement son rôle.


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1795
Inscription: Lun Jan 08, 2007 21:48

Message le Sam Aoû 23, 2008 11:52

Code: Tout sélectionner
J'aurais utilisé dès le départ un champ dédié au tag, afin d'en permettre l'indexation Very Happy

j'ai ai pensé, mais c'est un forum IPB, pas trop envie de mettre le nez dans leur code.
Autre solution : mettre à jour à interval régulier une seconde table, qui ne contiendrait que l'ID des topics en question.

Pas bête, mais pour l'affichage instantané des nouveaux topics, ça va pas être possible alors je crois.

Les "like" pour ma part je ne m'en sert que pour les recherches, surtout pas dans l'usage courant du site.

La requête avec like% comme le suggère YoyoS, elle s'arrête au premier caractère ? J'ai un doute idiot d'un coup.

Les "like" pour ma part je ne m'en sert que pour les recherches, surtout pas dans l'usage courant du site.

Pour l'instant il est vide :lol:


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Sam Aoû 23, 2008 11:54

Si ton champ est indexé, un seul like ne devrait pas être très long. Et oui like '[categorie]%' va te selectionner tous les [categorie]xxxxxxxxxxxx...


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1795
Inscription: Lun Jan 08, 2007 21:48

Message le Sam Aoû 23, 2008 12:55

Ce que je voulais dire, c'est est-ce que ça va pas me sélectionner les .................[category].... aussi ?

Même si le cas ne se produit jamais, la question théorique reste posée.

mementosql
Nouveau WRInaute
 
Messages: 2
Inscription: Ven Aoû 22, 2008 23:41

Message le Sam Aoû 23, 2008 13:08

Bonjour,

Meeuuuhhh a écrit:Ce que je voulais dire, c'est est-ce que ça va pas me sélectionner les .................[category].... aussi ?

Même si le cas ne se produit jamais, la question théorique reste posée.


Non. un like '%[tag]%' lui le fera, mais ne pourra plus utiliser l'index et sera donc beaucoup plus long.

Mais l'idéal est qd meme d'avoir ta colonne tag toute seule. Si tu peut pas modifier l'applicatif, un trigger dans la base peut faire l insertion : à chaque insert dans la table sujet, faire un insert dans ta colonne.

MS


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1795
Inscription: Lun Jan 08, 2007 21:48

Message le Sam Aoû 23, 2008 15:27

Je sais même pas ce que c'est, un trigger... Snif


fandecine
Modérateur
Modérateur
 
Messages: 1640
Inscription: Sam Avr 02, 2005 14:58

Message le Sam Aoû 23, 2008 15:38

En français on dit "déclencheur" :wink:

Un déclancheur, comme son nom l'indique, permet de déclancher une opération lorsqu'un événement se produit sur une table :lol:


Edité (correction de l'orthographe)
:oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:
Meeuuuhhh a écrit:Eh peut-être même que l'on dit déclencheur :wink:


Tu as le droit de me donner 10 coups de fouets :mrgreen:
Dernière édition par fandecine le Dim Aoû 24, 2008 14:57, édité 3 fois.


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1795
Inscription: Lun Jan 08, 2007 21:48

Message le Sam Aoû 23, 2008 21:00

Eh peut-être même que l'on dit déclencheur :wink:

En effet j'aurais pu y penser.

Mais je vois pas le truc, ça se bidouille dans la base de donnée ou quoi 8O


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Sam Aoû 23, 2008 22:25

Oui c'est dans la base de données, et c'est tout l'intérêt : comme l'a indiqué mementosql cela évite d'avoir à modifier l'application.

En gros tu indiques à MySQL d'exécuter un traitement particulier à chaque insertion/suppression/modification dans la table en question.


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1795
Inscription: Lun Jan 08, 2007 21:48

Message le Sam Aoû 23, 2008 22:47

Ca se fait via phpMyAdmin ça ? Parce qu'honnêtement c'est la première fois que j'entends parler de ça.


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Dim Aoû 24, 2008 0:56

euh non, très peu probable que ça arrive un jour dans phpmyadmin : http://dev.mysql.com/doc/refman/5.0/en/ ... igger.html


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Dim Aoû 24, 2008 1:12

Tu peux voir les déclencheurs dans la table "triggers" sur information_schema en tout cas ;)


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités