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

PHP & Base de données Discussion :

optimisation de tables


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de vasilov
    Inscrit en
    Juillet 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 306
    Par défaut optimisation de tables
    Bonjour à tous,

    j'aimerai votre avis pour savoir si mes tables sont optimisées.

    Je récupère les valeurs d'une 50aine de capteurs toutes les heures et les stoques dans les tables suivantes :

    La table capteurs qui stocke les noms et caractéristiques des différents capteurs :
    id (int) unique, autoincremental
    nom (varchar 255)
    caractéristiques (varchar 255)
    clée unique : l'id


    La table capteurValues qui stocke les valeurs des capteurs aux différents instants :
    capteur_id (int)
    value (double)
    timestamp (timestamp)
    comme clée unique : le couple (capteur_id, timestamp)
    et un autre index : timestamp (pour accélérer les select)

    Mon problème est qu'il y a environ 1250 valeurs supplémentaires dans la table capteurValues tous les jours. J'ai peur qu'un select dans cette table devienne long.
    Ils sont du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT `value` , `timestamp` FROM `capteurValues` 
         WHERE `value_id` = '" . $id . "' 
              AND `timestamp` > '" . $lastMonth . "' 
         ORDER BY `timestamp` ASC

    Pensez vous que ce soit un risque ?
    Pensez vous que sauvegarder les vieilles valeurs dans une tables poubelle soit une bonne idée (et du coup les supprimer de la table capteurValues)

    Merci beaucoup pour votre éclairage

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par vasilov Voir le message
    Mon problème est qu'il y a environ 1250 valeurs supplémentaires dans la table capteurValues tous les jours.
    Pensez vous que ce soit un risque ?
    Pensez vous que sauvegarder les vieilles valeurs dans une tables poubelle soit une bonne idée (et du coup les supprimer de la table capteurValues)

    Merci beaucoup pour votre éclairage
    Le plus simple pour avoir la réponse est encore de faire des tests de montée en charge. En fonction de cela tu pourras savoir quand il te faudra créer tes tables d'archive.

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Avoir une idée de la quantité de données qui commencerait à devenir problématique serait nécessaire.

    L'idée de tables "archives" peut être envisagé.
    Ca me rappel en vieux TP que j'avais lu, dont l'idée était intéressante aussi.
    L'idée était de créer non pas plusieurs tables, mais des Bdd "archives".

    A la base, il y a une Bdd "maitre" qui elle gère d'autres Bdd "esclaves".
    Donc cette Bdd "maitre" (très basique) stock essentiellement les infos des Bdd "esclaves" comme : leurs nom, leur fonction (production, archive), leur statut (en service/hors service).
    On peu faire ce qu'on veut en faite.
    Et l'autre idée était de faire une Bdd par année, mais on peu faire 1/mois, peu importe.

    Ceci dit, il est claire que ce n'est pas si simple, faut prévoir le coup, mais si toutes les Bdd ont la même structure (même tables, même noms, même champ et même nom de champs), ça peu se faire sans trop de mal.

    Faut prévoir tout de même la création automatique des nouvelles Bdd.
    De même leur destruction au bout d'un certain délai (au-delà de 2, 3 ans par exemple).

    La difficulté principale, et pas des moindre, c'est si le projet évolue, les tables changent (nouveau champ, suppression de champ, les noms changent, etc ...), ça peut être compliqué de faire un suivi dans le temps.


    Mais c'est juste une idée.

Discussions similaires

  1. [EBJ3][Annotations] Optimisation de tables
    Par Jester dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/11/2006, 17h55
  2. Optimiser une table sur SQL server trop gourmande en CPU
    Par molarisapa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/06/2006, 16h17
  3. Optimiser les tables mysql, nécessaire ?
    Par Michaël dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/07/2005, 18h11
  4. Optimisation des tables
    Par le-roy_a dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 24/01/2005, 10h04
  5. Optimiser les tables
    Par blizar dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 04/06/2004, 08h34

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