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

Android Discussion :

Performances SQLITE grand nombre d'entrées


Sujet :

Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 91
    Par défaut Performances SQLITE grand nombre d'entrées
    Bonjour,

    J'ai une application qui doit stocker environ 30.000 mots d'un dictionnaire dans une base de données SQLITE.
    J'aimerais savoir comment connaitre l'ordre de grandeur (si quelqu’un a déjà fait ça) du temps pour trouver un seul mot, avec une requête simple.

    Sinon, je cherche également des infos concernant les performances en général de SQLITE sur Android, et si y a une alternative pour stocker 30.000 mots et en trouver un rapidement.

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 103
    Par défaut
    Bonjour,

    Pour moi sqlite n'est pas faite pour stoker une énorme données

    Donc ma solution est de passer directement dans le stockage de carte mémoire (ex:ficher txt) , Mais le problème est si quelqu’ un supprime ton fichier c'est le

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 91
    Par défaut
    bein sqlite est basé sur un fichier texte, sauf qu il est indexé, donc ça va plus vite pour chercher un mot sur 30.000 que si c était un simple .txt ou la recherche est séquentielle.
    je vais faire des benchmarks on verra bien.

    merci pour ta réponse

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Par défaut
    Bonjour,

    J'ai fais des essais et des test durant un travail sur le SQLite.
    Le tout sur une base de 37.262 enregistrement sur plusieurs colonnes ( 7 si je me souviens bien).

    Verdict : Faire une recherche en autocomplexion sur une base SQLite te prendra environs 33seconde.
    Faire une indexation sur tes 30.000champs te fera gagner environs 2seconde. (donc toujours environs 31sec)

    Ce que j'ai fais moi pour m'en sortir as été : Création d'une virtual Table + Utilisation de l'extension FTS3. Le résultat s'affiche en a peu près 1seconde !

    En espérant que cela te fasse avancer !

    Cordialement,

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 91
    Par défaut
    merci pour ta réponse, tu parles de 33 seconds sur 7 colonnes, moi j en ai que 2, donc tu penses que ça va me donner 31 secondes aussi?

    Tu pourrais me donner plus de détail stp concernant
    Création d'une virtual Table + Utilisation de l'extension FTS3
    Si tu as du code ou un projet de tests tu pourrais les publier stp.

    merci beaucoup

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 385
    Par défaut
    Il me semble avoir fait aussi les test sur 1 et 2 colonnes et le temps étant toujours le même.

    Premièrement je te conseil de lire les liens suivant :
    http://www.sqlite.org/fts3.html
    http://www.sqlite.org/cvstrac/wiki?p=FtsUsage
    http://www.dotnetperls.com/sqlite-fts3
    Qui va t'apporter déjà une "base" sur le FTS3 et sur les Virtual Table (chose assez interessante c'est deux sujets. )
    Ensuite quand tu as compris l'aspect théorique de la chose, voici deux questions :

    1 - Tu as une base OFFline( En SQLite ? confirmation) , et tu as déjà fait le code d'importation dans /data/data/package/databases/ ?
    2 - Sais tu faire une Virtual Table maintenant ? (ce référer au lien précédant)
    Moi ce que je faisais était 1- creer ma table "normal" , 2 - creer ma table virtuel, 3 - faire un update de la table virtuel avec le contenu de la table normal.

    Tu peux allez voir quelques sujet que j'avais ouvert pendant mes recherches et avancer :

    Indexation et optimisation :
    http://www.developpez.net/forums/d11...-optimisation/
    FTS3 et renvois multiple :
    http://www.developpez.net/forums/d11...sieurs-champs/

    Cordialement ,

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 91
    Par défaut
    1 - Tu as une base OFFline( En SQLite ? confirmation) , et tu as déjà fait le code d'importation dans /data/data/package/databases/ ?
    en fait je porte une application J2SE sur Android, donc la base SQLITE est créée sur PC. C'est un dictionnaire de français light avec 30.000 mots en fait. Donc j'imagine qu'il s'agit d'une base offline.
    Je n'ai pas fait encore d'importation, car je n'ai pas encore testé le code gérant la BDD sur Android. Si le format de la base est standard(SQLITE3), je vais simplement la copier dans /data/data/package/databases/ ou bien dans la SDCard et ça devrait en principe marcher sans problème.

    2 - Sais tu faire une Virtual Table maintenant ? (ce référer au lien précédant)
    Le lien que tu m'a filé est assez clair, je vais essayer de la créer sur PC et faire des tests sur J2SE dans un premier temps pour voir si j'y gagne en temps de recherche.

    merci pour le tuyau

Discussions similaires

  1. Retrouver le plus grand nombre d'entrées, statistiques
    Par keokaz dans le forum Langage SQL
    Réponses: 0
    Dernier message: 09/05/2012, 09h24
  2. Réponses: 6
    Dernier message: 27/07/2010, 15h28
  3. Impact sur les performances d'un grand nombre de tables
    Par thechief dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 16/07/2010, 16h47
  4. Affichage d'un grand nombre d'images - performances
    Par smyley dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 28/12/2008, 12h50
  5. Requête pour modifier un grand nombre d'entrée
    Par gatsu00 dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/11/2007, 09h47

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