|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
Bonjour tout le monde,
Je viens de réaliser un script qui me permet d'importer le catalogue de mes fournisseur via FTP (fichiers texte) dans ma base de données puis synchroniser mon stock avec celui des fournisseurs. Mon problème est que je ne dispose que de 1Go de RAM et lors de l’exécution de mon script je perd le contrôle de mon serveur (Redémarrage nécessaire). Voilà le script en question : Code :
Ma question est, d'après vous est ce qu'il y a un moyen d'optimiser le code afin de réduire le temps d’exécution et la RAM nécessaire surtout pour les deux boucles WHILE? Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Quelques optimisations : - remplaces les DROP TABLE / CREATE par TRUNCATE, regardes ici - déportes les traitements SELECT * FROM stock_im/stock_etc -> INSERT INTO... dans une procédure stockée Sinon c'est bien d'avoir pensé à utiliser LOAD DATA INFILE
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
Citation:
Bonjour rawsrc, Merci de votre réponse, pour votre 2eme suggestion "déportes les traitements SELECT * FROM stock_im/stock_etc -> INSERT INTO... dans une procédure stockée" cela veut dire quoi exactement? excusez moi je très débutant en PHP&MySQL. Merci beaucoup |
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() |
Les procédures stockées sont "l'équivalent" de tes fonctions PHP, sauf qu'elles sont stockées, compilées et exécutées par le serveur de base de données.
Tu manipules ainsi tes données directement sur le serveur sans passer par la couche PHP. Le gain de performance est généralement colossal. Cela est tout à fait approprié dans les cas d'import de données. Regardes ici Après tu vas trouver des tas de tutos sur le net comme ici-même. Bon courage.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() |
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Pourquoi dans tes while reprépare tu la requête avant de l'executer ? C'est le principe des requêtes préparées de n'être préparées qu'une fois pour plusieurs utilisations :
Code :
|
||
|
00
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 219 ![]() |
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : janvier 2012 Messages : 5 ![]() |
Merci bouceaup
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com