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

SQL Procédural MySQL Discussion :

nombre de lignes potentiellement enorme => pb ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut nombre de lignes potentiellement enorme => pb ?
    Bonjour,

    Je suis actuellement en train de développer une application ou je dois récuperer l'état d'un objet pour chaque secondes passée, cet état est en fait un nombre composé de 3 chiffres.

    Le problème ? En comptant chaque jour, chaque minute, chaque seconde, on est à 86 400 états par jour, ce qui représente, pour une 50 aine d'objets par exemple 4 320 000 états par jour...

    Alors sur l'année... je n'ose même pas imaginer...

    Donc ma question : c'est dangereux un peu non ?

    Et ma seconde question, puis-je trouver une autre solution ?
    Croyez vous que cela serait mieux de stocker une minute; et pour chaque minute, 60 états separés par une virgule (un VARCHAR suffirait à tous les stocker)... Cela diminuerait le nombre de lignes dans la base mais il resterait malgré tout assez elevé... (plusieurs millions facilement)

    Qu'en pensez vous ? Merci de vos avis.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Si l'état de l'objet ne change pas à chaque seconde,
    tu peux stocker un nouvel état que lorsque l'état de l'objet a changé.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    il ne change pas forcement mais il est la plupart du temps plutot inconstant

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Je pense qu'il y a des questions à régler en amont avant d'opter pour telle ou telle solution.
    Est-il obligatoire de stocker autant de valeurs ? Est- ce qu'on va les consulter ou faire des recherches dessus ? Doivent-elles être stockées ad vitam eternam ? Quels traitements vont être appliqués sur ces données ? ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 72
    Points : 71
    Points
    71
    Par défaut
    Sinon tu n'a qu'a enregistrer le nouvel état seulement lorsqu'il a changé, et tu stockes aussi la date d'enregistrement. Comme ca tu peux faire un historique potable (tel objet a changé d'état à tel moment) et en plus tu diminues de façon notable le nombre d'enregistrements.

    Pour un historique sur une année, la solution consisterait à faire la moyenne des états de tes objets sur une minute ou sur une heure, pour réduire le nombre d'enregistrements. Tout dépend de la néccessité de ces informations.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Pour résumer

    Le problème est une question de taille des données.
    Cette taille peut prendre une grande taille disque, et surtout un grand temps d'aces.
    Il faut donc réduire les données.
    1° en détruisant les données qui ne sont plus utiles.
    2° En n'enregistrant que ce qui est utile
    3° en comprimant les données

    Pour comprimé les données vous pouvez n'enregistrer que les modifications des données et/ou choisir un format de donnée prenant le moins de place possible.

    Personellment je travaille en delphi. En Delphi j'essayerai de stoker les données dans un objet mémoire intermédaire, de les traiter tous les x secondes (toutes les heures par exemple) pour avoir un fichier stream a sauver, puis a sauver le tout dans champs blob. Donc 1 enregistrement par heure avec toutes les compression que je peux imaginer.
    Le problème et, que voulez vous fair avec ces données. Le compresser implique de les decompresser pour les utiliser. du coup mas solution peut être tres malcomode.

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

Discussions similaires

  1. Limiter le nombre de Ligne d'un RichEdit
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2004, 11h16
  2. [SYBASE] nombre de ligne impactée par UPDATE
    Par metheorn dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 17h47
  3. determination le nombre de ligne d'une table
    Par picoti2 dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/03/2004, 10h25
  4. Réponses: 2
    Dernier message: 02/03/2004, 20h38
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 21h25

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