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

JDBC Java Discussion :

Recherche dans une BDD ou en local ?


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Recherche dans une BDD ou en local ?
    Bonjour,

    J'ai un programme JAVA qui va taper dans une base de données SQLite. Je me demandais ce qui est le mieux entre taper dans la base de données à chaque recherche ou bien transférer toute la base de données dans des Vector/HashMap/autre et faire mes requêtes grâce à ses données locales.

    Par exemple si j'ai une table de voitures avec toutes les infos allant avec (immatriculation, propriétaire, marque, couleur, etc). Est-ce que c'est mieux pour chercher toutes les Mercedes de demander à la base de données "select identifiant from voiture where marque = Mercedes".

    Ou bien mettre toutes les voitures dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Vector<Voiture> listeVoiture;
    public void chercher() {
        for(Voiture v : listeVoiture) {
            if(v.marque = "Mercedes") System.out.println("Trouvé "+v.identifiant);
        }
    }
    Merci d'avance pour vos réponses !

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Vector : tu oublies (déprecated)
    si tu as toujours la même recherche dans un tableau classé alors tu peux à la rigueur faire un binarySearch à condition de personnaliser ton Comparator.

    ... et là tu finis par te dire que le SQL c'est justement fait pour cela
    et que c'est tout de même bien pratique - et performant - quand tu te retrouves avec plusieurs tables en relation !

    finalement, prenant ton courage à deux mains, tu fais une comparaison de performance
    et tu te rends compte que le SQL gagne dans la plupart des cas d'interrogation de base.
    Et surtout quand il s'agit de trouver toute une liste (genre liste des voitures marque Mercedes) car là, le binarySearch ne peut rien pour toi !
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Java / JEE
    Inscrit en
    Février 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java / JEE

    Informations forums :
    Inscription : Février 2008
    Messages : 185
    Points : 293
    Points
    293
    Par défaut
    Bonjour,

    Une base de données est optimisée (entre autre) pour faire de la recherche...
    L'utilisation de plus en plus fréquente d'outils comme JPA / Hibernate ou autres fait que le développeur ne réfléchit plus en SQL et fini par ramener toute la base en mémoire pour faire les recherches soit disant "parce que c'est plus simple"... Au final, on explose la mémoire et la recherche n'est pas si rapide que ça... Bref utilise ta DB

    Mathieu

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    D'accord, merci beaucoup !
    Il se trouve que je n'ai aucun problème pour réfléchir en SQL, bien au contraire je trouve cela plus simple. J'avais juste peur qu'un appel à la base de donnée à chaque action (soit toutes les 10sec environ) soit très peu performant.

    Merci de m'avoir éclairé

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

Discussions similaires

  1. Recherche dans une BDD - Affichage
    Par lifeislife dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 13/09/2010, 16h54
  2. Recherche dans une BDD : gestion des doublons ?
    Par remy77 dans le forum kettle/PDI
    Réponses: 5
    Dernier message: 26/05/2009, 00h07
  3. Recherche dans une BdD
    Par chlebta*tsotsi dans le forum Bases de données
    Réponses: 19
    Dernier message: 02/05/2009, 09h41
  4. Recherche dans une BDD
    Par tleboukaka dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/02/2007, 08h16
  5. [Thread] Recherche dans une BDD
    Par Pedro dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/05/2005, 14h03

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