|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
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 :
Je suppose que la première solution est la meilleure vu que l'on effectue qu'un seul accès à la base. merci à vous ! |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
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, 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)
|
|
|
00
|
|
|
#3 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
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
|
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
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 :
|
|
|
00
|
|
|
#5 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
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
|
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
En faisant un COUNT(*) sur la table concernée, les résultats varient aussi. Je vais essayer ta solution CHECK TABLE .
|
|
|
00
|
|
|
#7 | ||
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
J'ai vérifiée les tables via l'instruction CHECK TABLE.
Voici un des résultats : Code :
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. |
||
|
|
00
|
|
|
#8 | |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Citation:
__________________
Pensez au bouton
|
|
|
|
00
|
|
|
#9 |
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
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. |
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
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:
|
|
|
00
|
|
|
#11 | ||
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
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 :
Désolé pour le monologue ... |
||
|
|
00
|
|
|
#12 |
|
Membre éclairé
![]() ![]() Inscription : novembre 2005 Messages : 385 ![]() |
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. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com