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 :

Gérer très gros SELECT ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut Gérer très gros SELECT ?
    Bonjour,

    Je souhaite effectuer une requête sur un très gros nombre de lignes (40 000 000 d'entrées environ), plusieurs jointures sont effectuées.

    Sauriez-vous s'il est possible d'allouer plus de mémoire pour SELECT (dans my.cnf) et s'il est possible de traiter la requête par lots plutôt que tout charger en mémoire (à moins que le serveur ne gère ça tout seul, mais comme j'ai eu un crash du client, je préfère m'en assurer) ?

    En vous remerciant,

    C. Tobini

  2. #2
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Bonjour,

    Tu peux déjà utiliser SQL_BIG_RESULT si tu as beaucoup de résultats, ensuite n'hésite pas également à créer des index sur ta table qui te permettront d'optimiser les temps de réponse.
    Pour voir sur quel champs créer tes index utilise 'EXPLAIN' dans ta requete.

    Voilà, si tu suis déjà bien ces deux conseils et que tu places bien tes index, tu devrais avoir des résultats satisfaisants.

    Maintenant si vraiment tu veux augmenter la mémoire, penche toi du côté de la variable de serveur 'key_buffer_size' que tu peux augmenter.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Bonjour et merci de la réponse,

    J'ai augmenté dans un premier temps key_buffer_size qui améliore effectivement sensiblement la réponse.

    Je vais me pencher sur EXPLAIN pour voir si mes index sont optimisés.

    Merci encore et bonne journée,

    C. Tobini

  4. #4
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Habituellement on fait plutôt le contraire, à savoir on commence par optimiser ses requetes et ensuite on augmente la taille du buffer...
    Ne négliges pas SQL_BIG_RESULT également

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

Discussions similaires

  1. Transformer un très gros fichier XML avec XSL
    Par wozzz dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/05/2006, 10h57
  2. Réponses: 2
    Dernier message: 25/02/2006, 06h37
  3. ibdata1... très gros ???
    Par Fred_76 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/02/2006, 10h24
  4. [Visual Studio 2003] J'ai un très gros souci !
    Par bart64 dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 18/11/2005, 15h01

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