Optimisation sql - Petite question

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par michel.leonard, 16 Août 2012.

  1. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    361
    J'aime reçus:
    0
    Salut, j'ai une question à vous soumettre, chers WriNautes

    Considérons une table MySql contenant environ 37000 lignes (les communes de FR)
    Un API permet d'entrer un ID et retourne les 100 id les plus proches d'une commune.
    Comment faudrait-il faire pour faire un SELECT, dans une table donnée sur touts ces ID ?
    Faut-il faire WHERE id=4432 OR id=4403 or id=23 OR .... OR ID=342 ?
    Faudrai-il faire une fonction PHP qui optimise la requète en construisant des inégalités si possible,
    ou est-ce que MySQL optimise déja sa recherche de cette façon en "pré-traitement" ?

    Merci pour vos avis et réponses.
     
  2. k2pi
    k2pi WRInaute occasionnel
    Inscrit:
    4 Février 2007
    Messages:
    272
    J'aime reçus:
    0
    Salut,

    Alors j'ai envi de dire que c'est une bonne questions :)
    J'aurai tendance a dire que ca depend du nombre d'id que tu as. Si c'est effectivement 100 ça reste encore petit, tu peux essayer avec un
    WHERE id IN (id1, id2, ..., id100).
    Il faut egalement voir si c'est juste pour recuperer un ou deux champs de la seule table villes ou si tu veux faire une jointure en meme temps (ca complique).
    Apres j'ai envi de dire que bien souvent avec mysql il vaut mieux faire plus de petites requêtes qu'une grosse.

    Honnêtement le plus simple c'est de faire les deux méthodes et de faire un petit bench pour voir ce qui est le plus rapide.
    Et surtout il faut bien mettre les bon indexs sur les tables (bon la c'est pas tres dur c'est sur les id mais quand même)

    PS : pour le bench, si tu fait tourner en boucle les méthodes pour te rendre mieux compte du temps que ca met, pense a mettre SQL_NO_CACHE apres ton SELECT pour eviter d'avoir des perf biaisees par la mise en cache mysql.
     
  3. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    plutôt un "id in (x,y,z,...)"
     
  4. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    361
    J'aime reçus:
    0
    Merci pour vos réponses,

    En théorie et pour l'avenir, SQL devroit (doit et devrais) optimiser ça tout seul.

    Je vais faire des essais avec plusieurs méthodes. Quand des résultats seront probants, je les publierais sur ce thread.
     
Chargement...
Similar Threads - Optimisation sql Petite Forum Date
Petite optimisation SQL ? Développement d'un site Web ou d'une appli mobile 18 Mars 2008
Optimisation d'un champ sql Développement d'un site Web ou d'une appli mobile 17 Novembre 2018
Problème optimisation d'un count() : Mysql Développement d'un site Web ou d'une appli mobile 15 Février 2014
Optimisation Requete SQL Développement d'un site Web ou d'une appli mobile 14 Juin 2013
Optimisation recherche sur grosse table mysql Développement d'un site Web ou d'une appli mobile 30 Mars 2013
optimisation bdd mysql Développement d'un site Web ou d'une appli mobile 7 Mars 2013
Optimisation Mysql Administration d'un site Web 23 Mai 2012
Optimisation d'un tri Mysql Développement d'un site Web ou d'une appli mobile 23 Juillet 2011
Problématique optimisation accès bdd mysql ... Développement d'un site Web ou d'une appli mobile 8 Mai 2011
Optimisation SQL - Inner Join (3) ou 3 x Select ? Développement d'un site Web ou d'une appli mobile 28 Janvier 2011
Optimisation MySQL - Debian 5 Administration d'un site Web 16 Octobre 2010
optimisation site web / mysql Développement d'un site Web ou d'une appli mobile 31 Juillet 2010
Mysql optimisation index/requêtes. Développement d'un site Web ou d'une appli mobile 14 Avril 2009
[PHP/MySQL] Optimisation multiples requêtes Développement d'un site Web ou d'une appli mobile 24 Juin 2008
[MYSQL] Pb de requête + optimisation structure table Développement d'un site Web ou d'une appli mobile 18 Janvier 2008
[optimisation] mysql connect close Développement d'un site Web ou d'une appli mobile 26 Décembre 2007
Optimisation site : accès mysql ou include ? Développement d'un site Web ou d'une appli mobile 23 Septembre 2007
[optimisation Mysql] Fermer ou pas les connexions distantes Développement d'un site Web ou d'une appli mobile 3 Août 2007
Optimisation mysql et LIMIT Développement d'un site Web ou d'une appli mobile 2 Mars 2007
Optimisation sql Développement d'un site Web ou d'une appli mobile 12 Février 2007