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 :

MYSQL : Premier SELECT très long


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut MYSQL : Premier SELECT très long
    Bonjour

    J'ai une table avec 400 000 enregistrements.
    Elle est en INNODB.

    Le première requête executé et correspondant à l'index est très long.
    Une fois exécuté il est plus rapide, sauf si je ne l'exécute pas de quelque temps.

    Comment remedier à cela ?

    Voici la structure de la table


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE IF NOT EXISTS `product` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `description` text COLLATE utf8_unicode_ci NOT NULL,
      `price` decimal(7,2) NOT NULL DEFAULT '0.00',
      `tva` decimal(4,2) NOT NULL DEFAULT '0.00',
      PRIMARY KEY (`ID`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=473580 ;
    Le SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `name` FROM `product` WHERE `ID` = 80
    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    - que veut dire très long ?
    - par 1er qu'entendez-vous ? après un arrêt / relance du serveur ?
    - combien de Go/Mo fait votre bdd ? vos indexes ?
    - qu'avez-vous comme valeur pour le paramètre : innodb_buffer_pool_size ?

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Normalement, et vu la structure de la table, la réponse devrait être immédiate.
    Ce temps très long est-il constaté directement sur le serveur MySQL ou via une application ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut
    Il faut bien compter 70 secondes.

    Cela correspond a un arrêt relance effectivement.

    La base fait 21 Mo.

    innodb_buffer_pool_size fait 8 Mio

    La requête est exécutée via PHPMyAdmin

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par re12 Voir le message
    Il faut bien compter 70 secondes.

    Il y a quelque chose qui ne va pas quelque part !

    Un détail que je viens de constater :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE IF NOT EXISTS `product`
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `name` FROM `bo_product`
    tu n'interroges pas la table dont tu nous as donné la structure !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut
    Effectivement j'ai corrigé cette partie dans le premier post.

    Pensez vous qu'il y a une mise en cache qui est faite la première fois? étonnant qu'elle soit si longue?

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    La piste que j'aurai par rapport à ca c'est que MYSql met 70 sec pour soit (ou un mix des deux) :
    - charger en mémoire votre index.
    - retrouver sur disque les informations liées à votre ligne (et les mettre en mémoire).

    Donc ...
    - est-ce un serveur dédié
    - y a-t-il d'autre database MySql qui tourne sur la même instance qui pourrai utiliser ces 8mo de innodb_buffer_pool_size
    - vos disques sont-ils ok
    - y aurai-t-il un lock par une appli de votre table production lors du lancement du serveur ?
    - etc ...

  8. #8
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Par défaut
    Alors c'est une machine virtuelle pour le moment (l'application est en cours de développement)

    Il n'y a pas de soucis de perf sur cette machine elle fonctionne plutôt bien.

    C'est la seule application sur la machine.

Discussions similaires

  1. Driver JDBC et Oracle - select très long
    Par mgax07 dans le forum JDBC
    Réponses: 5
    Dernier message: 20/02/2014, 10h03
  2. [Perfs] Insert+select très long
    Par farenheiit dans le forum Administration
    Réponses: 39
    Dernier message: 07/08/2009, 14h36
  3. Démarrage de windows vraiment très long
    Par krfa1 dans le forum Windows XP
    Réponses: 16
    Dernier message: 23/10/2005, 12h37
  4. delete très long
    Par slefevre01 dans le forum Oracle
    Réponses: 7
    Dernier message: 06/10/2005, 13h16
  5. Très long texte dans Quick Report - Comment faire ?
    Par delphi+ dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/08/2005, 22h18

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