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

Requêtes MySQL Discussion :

Index sur champs float


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 47
    Par défaut Index sur champs float
    Bonjour,

    Je réalise une requête de recherche sur une table contenant des identifiants latitude et longitude (float). La table est de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    id | lat | lng
    1  | 42.679 | 2.787
    2  | 42.464 | 2.798
    ...
    Je fais des requêtes du type SELECT id FROM table WHERE lat>LAT and lng<LNG par exemple. Est-il pertinent/possible d'indexer les champs lat et lng de cette table pour augmenter la vitesse d'exécution ?

    Merci à vous !

    Thibaud

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 515
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 515
    Par défaut
    Oui et non utilise la fonction EXPLAIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXPLAIN SELECT id FROM table WHERE lat>LAT and lng<LNG.
    Fait une comparaison sans et avec indexation. Tu verras s'il y a une différence notable. Mais dans votre cas précis je dirais que non c'est pas utile mais je peux me tromper parce que j'ai pas toute la connaissance et information

  3. #3
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    L'indexation usuelle à base de btree permet de rechercher une étendue donc indexer chaque composante peut aider les recherches, en fonction de la précision de ce que l'on cherche et des autres conditions.

    Par contre un index portant sur la latitude et la longitude ne peut être utilisé pleinement que si la condition sur sa première composante est une égalité stricte (délicat en virgule flottante). A la limite dans le cas contraire on pourrait avoir un index couvrant ce qui est mieux que rien...

    Pour vraiment rechercher une zone avec une vraie indexation il faudrait plutôt regarder du côté de http://dev.mysql.com/doc/refman/5.0/...-analysis.html

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

Discussions similaires

  1. Index sur champs datetime
    Par fred_04510 dans le forum Développement
    Réponses: 12
    Dernier message: 07/04/2009, 14h08
  2. Problème d'index sur champ
    Par acrobaz dans le forum 4D
    Réponses: 1
    Dernier message: 16/10/2008, 21h10
  3. [SQL SERV 2000]Problème sur champs Float
    Par Tankian dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/08/2006, 14h29
  4. n INDEXs sur chaque champ ou 1 seul INDEX sur n ch
    Par fourchette dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/04/2004, 10h55

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