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

Requêtes MySQL Discussion :

Requete sur beaucoup d'enregistrements


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 7
    Par défaut Requete sur beaucoup d'enregistrements
    Bonjour,

    J'ai une table d'environ 2 millions de lignes (avec 12 colonnes) et j'ai besoin, en 'one shot' par mois éliminer les doublons pour ces critères:

    on a un identifiant client (num_clt) et un date de commande (date_cmd)

    en gros il me faut éliminer les plus anciens pour chaque client.

    2 Choses:
    => Ma requete ne passe pas car excède les 30 secondes de traitement (je ne peux pas modifier ça)
    => Ma requete que je pensais la plus simple possible n'est peu etre pas la plus facile à traiter pour mysql:

    (ici c'est juste la requete de selection qui ne passe quand meme pas):

    SELECT sub.*(SELECT * FROM bigtable ORDER BY date_cmd) sub GROUP BY num_clt


    Si je fait un ORDER suivi d'un GROUP BY ça ne fera pas ce que je veux je pense et ça n'as pas l'air d'aller plus vite non plus.

    J'ai mis un index sur num_clt ça aide un brin, mais pas des masses.

    Des idées pour couper ce traitement en petis bouts ?
    Pour que la requete tourne mieux ?

  2. #2
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut
    Bonjou,

    Ce que j'aurai fait pour récupérer les lignes avec la plus grande date par client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select num_clt, max(date_cmd)
    from bigtable
    group by num_clt
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

Discussions similaires

  1. Requete sur intervalle d'enregistrements
    Par ATI75 dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 17/09/2008, 12h41
  2. Requetes sur enregistrement selectionné
    Par florian123 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/05/2008, 08h11
  3. requete sql trop longue enregistrement en mémoire ou sur disque
    Par jyvaut75 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 01/02/2008, 15h11
  4. Requete sur plusieurs enregistrements !
    Par Mathelec dans le forum Langage SQL
    Réponses: 14
    Dernier message: 12/03/2006, 14h27
  5. Requete sur un enregistrement
    Par Fooshi dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/01/2006, 14h05

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