Requetes SQL : solution la plus rapide ?
14 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

Meeuuuhhh - WRInaute passionné

- Messages: 2046
- Inscription: 8 Jan 2007
Requetes SQL : solution la plus rapide ?
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] ?
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] ?
-

Bool - WRInaute passionné

- Messages: 1290
- Inscription: 26 Fév 2004
J'aurais utilisé dès le départ un champ dédié au tag, afin d'en permettre l'indexation
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.
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 passionné

- Messages: 2046
- Inscription: 8 Jan 2007
- 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
- mementosql
- Nouveau WRInaute

- Messages: 2
- Inscription: 22 Aoû 2008
Bonjour,
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 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
-

fandecine - Modérateur

- Messages: 2047
- Inscription: 2 Avr 2005
En français on dit "déclencheur"
Un déclancheur, comme son nom l'indique, permet de déclancher une opération lorsqu'un événement se produit sur une table
Edité (correction de l'orthographe)
Tu as le droit de me donner 10 coups de fouets
Un déclancheur, comme son nom l'indique, permet de déclancher une opération lorsqu'un événement se produit sur une table
Edité (correction de l'orthographe)
Meeuuuhhh a écrit:Eh peut-être même que l'on dit déclencheur![]()
Tu as le droit de me donner 10 coups de fouets
Dernière édition par fandecine le Dim Aoû 24, 2008 14:57, édité 3 fois.
-

Bool - WRInaute passionné

- Messages: 1290
- Inscription: 26 Fév 2004
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.
En gros tu indiques à MySQL d'exécuter un traitement particulier à chaque insertion/suppression/modification dans la table en question.
-

Bool - WRInaute passionné

- Messages: 1290
- Inscription: 26 Fév 2004
euh non, très peu probable que ça arrive un jour dans phpmyadmin : http://dev.mysql.com/doc/refman/5.0/en/ ... igger.html
14 messages
• Page 1 sur 1
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 les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Fonctions VS requêtes SQL .. le plus rapide ?
- requêtes sql
- Pb requètes SQL
- Double requêtes SQL
- Cherche solution rapide pour faire apparaitre mon site sur google
- Fusionner 2 requetes sql
- 3 requêtes SQL en une
- Réunir 2 requetes sql en une
- Réduire le nombre de requêtes sql
- Execution de requetes SQL via Ajax
- Nuage de tags Wordle pour WebRankInfo - 29-04-2009
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Google Chrome : nouvelle version beta plus rapide - 18-03-2009
- Contrer une redirection 302 intempestive... - 29-03-2005
- Utiliser Actifpub pour l'intégration d'un flux RSS externe sur son site - 15-09-2004
- Description des liens sponsorisés Google AdWords - 19-09-2002
- Vidéos YouTube 4096 x 3072 pixels (4K) - 12-07-2010
Consultez la description détaillée des produits ou services de Google suivants : Google Trends Recherche Personnalisée
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

