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 :

Archivages de données


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 38
    Par défaut Archivages de données
    Bonjour à tous,


    Je souhaite archiver des données de la façon suivante :

    Le but est d'archiver une table par mois. Nous en allons donc en créer une par mois.

    Soit une table contenant 3 000 000 enregistrements sur 40 colonnes nommée TABLE_COURANT (InnoDb).
    Au 2 janvier 2008, nous voulons transferer les données du mois de décembre vers une table TABLE_200712.

    Quel est la meilleure solution en temps de traitement? Sachant qu'il faut faire un "couper/coller" dans une autre table ?

    J'ai bien pensé renommer la table TABLE_COURANT en TABLE_200712 puis de transphaser les données du mois de janvier vers une nouvelle table TABLE_COURANT mais la suppression des données du mois de janvier de la table TABLE_200712 prend beaucoup de temps.

    Auriez vous une idée miracle ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Par défaut
    Sur TABLE_COURANT, tu rajoutes une colonne BOOLEAN NOT NULL DEFAULT 0 nommée adetruire. Au lieu de faire un DELETE, tu fais un UPDATE marquant cette colonne à 1 pour le mois copié dans sa table.
    La nuit quand il y a du temps, tu lances le DELETE pour toutes les lignes marquées 1 dans adetruire.

    Autres pistes :
    - faire un COMMIT avant la suppression
    - mettre le @@foreign_key_checks à 0 avant la suppressions et le rétablir ensuite
    - tester le DELETE LOW PRIORITY et le DELETE QUICK

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 38
    Par défaut
    Ok merci, je vais voir avec cette technique

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

Discussions similaires

  1. [Xquare] Archivage de données
    Par Zeusviper dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 22/03/2007, 19h23
  2. [10 G] archivage de données
    Par vincent.alyotech dans le forum Oracle
    Réponses: 4
    Dernier message: 14/03/2007, 11h42
  3. Archivage des données automatiques
    Par Claire07 dans le forum Access
    Réponses: 10
    Dernier message: 15/06/2006, 15h08
  4. [10g] Archivage de données par années
    Par Cereal123 dans le forum Oracle
    Réponses: 7
    Dernier message: 24/04/2006, 09h35
  5. Conseil pour un archivage de données
    Par Cerberes dans le forum Oracle
    Réponses: 14
    Dernier message: 07/04/2005, 10h38

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