25-01-2012, 09:42 PM
Dans le sens ou je prévois que c'est un script Web qui initie le traitement qui sera exécuté en tâche de fond (fork), normalement, il ne devrait pas y avoir de restriction de temps du point de vue du serveur.
25-01-2012, 09:42 PM
Dans le sens ou je prévois que c'est un script Web qui initie le traitement qui sera exécuté en tâche de fond (fork), normalement, il ne devrait pas y avoir de restriction de temps du point de vue du serveur.
25-01-2012, 10:03 PM
Je ne sais pas. Au pire tu utilises un système de queue : tu en auras d'autres usages si ton application est un peu complexe.
27-01-2012, 12:46 PM
En explorant les différentes possibilités, j'ai trouvé que la commande LOAD DATA INFILE serait 20 fois plus rapide que la commande INSERT. :bave:
Il faut modérer ce ratio par le cout supplémentaire d'écriture dans un fichier au lieu de stocker les différentes VALUES dans une variable (string ou array) avant l'appel de la commande MySQL. Mais avec le passage par un fichier, la question de limitation de la volumétrie disparait.
27-01-2012, 12:50 PM
27-01-2012, 03:58 PM
Je viens de faire une petit bench: Citation :INSERT dans boucle :Alors, je n'ai pas lancé les 10 000 inserts individuels (sinon j'y serai encore demain...). J'aurai souhaité monter plus mais, pour une raison que je n'ai pas encore trouvé, ma boucle ne dépasse pas 16383 (2^14 -1). voici les sources des tests (fait sur un wamp): 1/ INSERT dans la boucle: Code PHP :
2/ INSERT à la fin Code PHP :
3/LOAD DATA INFILE: Code PHP :
avec comme table :
En recoupant une information fournie par Sephi-chan, l'utilisation d'un fichier puis de LOAD DATA INFILE ne serait justifiée par rapport à un INSERT à la fin que pour une volumétrie trop importante: dépassement du tampon
27-01-2012, 04:58 PM
J'ai trouvé ma limitation à 16384 occurrences: c'est la fonction rand()! fonction également plus rapide, j'obtiens maintenant :En passant avec : Code PHP :
Citation :INSERT après boucle :En fait, à 100 000 enregistrements insérés d'un coup, cela fait environ 4 millions de caractères pour la commande SQL donc plus que accepté par MySQL.
27-01-2012, 05:41 PM
merci pour ce test, vraiment interessant
27-01-2012, 05:44 PM
Est ce que y a un équivalent pour les update (autre que par une requête unique qui croise les données d'autres tables via une formule) ?
en tout cas c'est intéressant
27-01-2012, 05:55 PM
(Modification du message : 27-01-2012, 07:01 PM par Sephi-Chan.)
(27-01-2012, 05:44 PM)Ter Rowan a écrit : Est ce que y a un équivalent pour les update (autre que par une requête unique qui croise les données d'autres tables via une formule) ? lit le manuel: http://dev.mysql.com/doc/refman/5.0/fr/load-data.html il faut préciser REPLACE ou un truc du genre
31-01-2012, 11:37 PM
(Modification du message : 31-01-2012, 11:38 PM par jean-baptiste.)
C'est marrant je me suis confronté au même problème au boulot.
Avec une échelle un peux plus importante. (1.000.000) Dans tout les cas le faire dans un boucle en individuel est toujours plus lent. Tout d'abbord il faut bien faire attention à sa structure de table, si tu peux éviter les autoincrements tu gagnes bien sur un peux de temps. De même si ta table est en myIsam. L'autre avantage de le faire par lot est de controler l'intégrité de tes données au fur et à mesure. Sinon si tu veux le faire via un fichier cela te permet de gagner bcp de temps( plus tu en as et plus tu gagnes du temps). J'avais des champs personnellement avec bcp de donnée j'avais générer un fichier de 700Mo. Je passais de 5 minutes via un fichier à 10aine de minute par lot de 5.000 insertions. Tout dépend si le temps d'insertion est une priorité pour toi. J-B |
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Empecher l'ouverture de plusieurs onglets simultanés sur son site? | Argorate | 6 | 3 342 |
12-04-2014, 06:25 PM Dernier message: Sephi-Chan |
|
[Resolu] SQL: de l'UPDATE à l'INSERT | zneman | 15 | 6 464 |
13-02-2013, 12:52 PM Dernier message: zneman |
|
Plusieurs insert dans une boucle | tesco | 3 | 2 009 |
22-12-2011, 04:56 PM Dernier message: atra27 |
|
[Coding style] nombre > 0 ou 0 < nombre ? | popayan | 41 | 17 006 |
20-09-2010, 02:30 PM Dernier message: Argorate |
|
quel est le meilleur framework PHP ? | gameprog2 | 34 | 17 746 |
12-09-2010, 09:47 PM Dernier message: Harparine |