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

Langage SQL Discussion :

Que privilégier : %like% dans champs texte, ou plain text ?


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Que privilégier : %like% dans champs texte, ou plain text ?
    Bonjour,

    Dans une table, j'ai 2 champs texte (MySQL).

    Un moteur de recherche donne la possibilité aux utilisateurs de rechercher des termes dans ma table.

    Ainsi, actuellement, j'effectue une requête du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT mesChamps... WHERE champText1 LIKE '%terme1%' OR champsText2 LIKE '%terme1%...
    Si la personne entre 5 termes, ma requête devient assez longue, mais ma table ne faisant pas plus de 300 Ko, la recherche est rapide.

    Cependant, est-il judicieux d'indexer mes champs text pour ce type de recherche ?

    Et (mis à part les différences de recherche, en terme de performance uniquement, de consommation CPU du serveur) ne vaut-il pas mieux préférer une recherche en full-text, plutôt que d'utiliser LIKE ?

    Merci par avance pour vos conseils.

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Un index est totalement inutile pour une recherche comme
    il pourrait être utilisé que pour une recherche comme
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Ah, ok.

    Mais je suppose que la requête ci-dessus parse la table entièrement.

    N'y a t-il pas un autre moyen de faire, la recherche "full-text" parse t-elle la table entièrement ?

    Je suppose que nom, puisque les champs sont indexés dans ce cas, c'est bien ça ?

    Alors que faire, utiliser le LIKE '%...%' ou utiliser une recherche full-text (toujours en terme de performance, de limitation de charge du serveur sql) ?

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Mais je suppose que la requête ci-dessus parse la table entièrement.
    Oui
    N'y a t-il pas un autre moyen de faire, la recherche "full-text" parse t-elle la table entièrement ?

    Je suppose que nom, puisque les champs sont indexés dans ce cas, c'est bien ça ?
    Oui
    La recherche full-text n'est pas implémentée dans tous les sgbdr (loin de là) mais quand c'est le cas, son utilité principale est de suppléer aux défauts de performance du like '%...%', donc si elle est disponible sur ton système : aucune hésitation, full-text est là pour cela.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Et bien 100 mercis.

    Voici une réponse claire et précise.

    Mon hébergeur vient de passer à la version 4 de mySQL, je vais pouvoir exploiter la recherche full-text.

    Merci.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2008, 08h28
  2. empecher saisie de caractères dans champ de type input text
    Par mussara dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/06/2006, 14h09
  3. evenements dans champ texte
    Par KAZA51 dans le forum IHM
    Réponses: 6
    Dernier message: 12/09/2005, 17h00
  4. affiche date du jour dans champ texte
    Par pascal.cargouet dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/01/2005, 11h04
  5. Utilisation de replace dans champs text
    Par cdelamarre dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 01/12/2004, 17h26

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