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

Installation MySQL Discussion :

bug nombre d'enregistrements


Sujet :

Installation MySQL

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut bug nombre d'enregistrements
    Pour la réalisation d'une application web, j'ai crée une base MySQL. J'ai crée un script PHP permettant d'intégrer les données déjà existantes. Lorsque j'insère un grand nombre données, MySQL me retourne un nombre total d'enregistrements différents à chaque rafraichissement de la page.

    Par exemple, j'ai inséré 84 196 enregistrements dans une table, MySQL m'indique un volume de 84 310 puis 83 890, ...

    Autre question : lorsque j'insère un grand nombre de données est-il préférable d'écrire une seule requête de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO maTable
    (champ1, ..., champ N)
    VALUES (value1, ..., value N), (value1, ..., value N), ...
    ou une requête insert par enregistrement.

    Je suppose que la première solution est la meilleure vu que l'on effectue qu'un seul accès à la base.

    merci à vous !

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    la première solution est en effet préférable, cependant, attention, si jamais une de tes insertions provoque une erreur, les suivantes ne seront pas faites !
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Si tu utilises PHPMyAdmin c'est potentiellement "normal".
    D'autres ont eu le même problème : http://www.developpez.net/forums/sho...nts+PHPMyAdmin

    Sinon la première solution est effectivement préférable
    Pensez au bouton

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    merci pour vos réponses.

    Il est donc [anormalement] normal que le nombre d'enregistrements varient lors des rafraichissements. Dommage que le lien que tu m'as donné ne fourni aucune explication concernant ce bug.

    Ci quelqu'un sait comment résoudre ce problème ça m'intéresse car c'est très génant ce bug surtout que l'application que je dois développer doit générer des statistiques. Or si les résultats sont jamais les mêmes ce n'est pas très sérieux.

    J'ai deux questions :
    • Faut-il limiter le nombre d'insertions simultanées via le script d'intégration ?
    • Faut-il changer de SGBD ?

  5. #5
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Je parlais uniquement de PHPMyAdmin... Vérifie bien que via un COUNT dans une requête ça fonctionne bien.

    Un CHECK TABLE pourrait aussi aider à tenir les statistiques à jour.
    Pensez au bouton

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    En faisant un COUNT(*) sur la table concernée, les résultats varient aussi. Je vais essayer ta solution CHECK TABLE .

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    J'ai vérifiée les tables via l'instruction CHECK TABLE.

    Voici un des résultats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <ul><li style="">crivente.tmp_releves_acheteurs</li><li style="">check</li><li style="">status</li><li style="">OK</li></ul>
    Tout est normal d'après le résultat.

    Comme j'ai une dizaine de tables et environ 70 fichiers de plusieurs milliers d'enregistrements à intégrer, j'ai effectué différents tests et il semblerait que le bug provient lorsque j'intégre des fichiers trop volumineux.

    Je vais donc tester les intégrations en scindant chaque fichier en plusieurs fichiers. Je vous tiendrez au courant des résultats.

  8. #8
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Citation Envoyé par erwan.bodere
    En faisant un COUNT(*) sur la table concernée, les résultats varient aussi.
    Dans quel environnement ? En ligne de commande ? Désolé d'insister mais apparemment pas mal de clients MySQL ont le même pb que PHPMyAdmin...
    Pensez au bouton

  9. #9
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    J'utilise un poste de travail sous win 2000, le serveur et sous win (2000 je pense). J'ai installé Wamp5 sur ce serveur donc apache et phpMyAdmin 2.7.0-pl2

    J'exécute un script Php5 via IE6. Je n'ai pas essayé en mode commande car je ne sais pas comment faire (je n'ai pas cherché ).
    Je viens encore d'essayer avec un fichier de 50 000 enregistrements mais ca bug toujours. Ca passe avec des fichiers de 20000 enregistrements.

    De plus si j'intègre plusieurs fichiers, avec seulement 1 de gros volume, l'intégration des autres fichiers bugs. Pour info, dans mon exemple les fichiers concernent des tables différentes.

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Dans le cadre du projet que je dois réaliser, j'ai données existantes dans des 7 bases Access. J'exporte les données dans des fichiers CSV et les intègre via un script PHP dans la base MySQL. J'utilise un script PHP car il servira pour les futures intégrations journalières et pour filtrer les champs.

    J'ai effectué plusieurs tests avec une table de plus de 50 000 enregistrements:
    • 50 000 : bug
    • 25 000 : bug
    • < 20 000 : ne bug pas

  11. #11
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Encore mieux, si j'intègre le fameux fichier de 50000 enregistrements ça bug, tandis que si j'intègre ces 50000 enregistrements dans 3 fichiers différents dans le même script PHP il n'y a pas de bug.

    Donc voici la solution au problème, après unqiuement un test donc c'est à voir par la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    scinder les fichiers sources en plusieurs fichiers d'un volume 
    de 20 000 enregistrements maximum et intègrer ces fichiers
    Cette solution n'est peut-être pas idéale mais elle a le mérite de fonctionner (pour le moment).

    Désolé pour le monologue ...

  12. #12
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Points : 321
    Points
    321
    Par défaut
    Finallement, après plusieurs tests je me suis rendu compte que lorqu'on ajoute une grand nombre de données avec une requête par enregistrement, l'insertion effective dans la base de données prend plusieurs minutes.

    En effet lorsque j'intègre un fichier de 400 000 enregistrements, la requête COUNT(*) m'affiche au départ à 30 000, puis au bout de 2-3 minutes je réeffectue une requête COUNT(*) et le résultat m'indique un nombre d'enregistrement de 100 000, ... jusqu'à atteindre les 400 000 enregistrements escomptés.

    Par contre le bug d'affichage concernant le nombre d'enregistrement de la table via l'onglet affichage persiste contrairement à l'exécution de la requête COUNT(*).

    Donc la solution réelle est la patiente.

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

Discussions similaires

  1. [DB] Nombre d'enregistrements d'une table
    Par Mister Nono dans le forum Bases de données
    Réponses: 26
    Dernier message: 09/05/2006, 09h51
  2. Réponses: 4
    Dernier message: 29/05/2004, 14h29
  3. Limiter le nombre d'enregistrement
    Par BXDSPORT dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/04/2004, 16h26
  4. [débutant] Limitation du nombre d'enregistrement renvoyé
    Par tmcgrady dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/11/2003, 09h41
  5. XMLGram et nombre d'enregistrements par page
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 7
    Dernier message: 26/02/2003, 12h35

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