|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Bonjour à tous.
A des fins de tests de performances, j'ai écrit un script qui me permet de remplir une table MySQL (innoDB) avec des données aléatoires. Ce script prépare une requête d'insertion qui est exécutée 500.000x, or les insertions s'arrêtent au bout de 4096 lignes alors que le retour de PDOStatement::execute lui est toujours true... J'ai vérifié l'algorithme de génération aléatoire et il n'y a pas de redondance, la table porte un index unique sur l'intégralité de ses champs (sauf la clé) mais la probabilité de générer un triplet existant est quasi-nulle. Bref, je me retrouve devant un comportement que je n'ai jamais remarqué en production où il est courant de traiter des batchs de plusieurs dizaines de milliers de lignes... Je précise que les tests se déroulent sur un environement WAMP avec MySQL 5.1, PHP 5.3 et Apache 2.2. Avez-vous déjà rencontré ce problème ? D'où peut-il bien venir ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
montre pour voir
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Je me permet de masquer certaines données.
Code :
Allez savoir pourquoi mais maintenant ça fonctionne depuis que j'ai remplacé l'usage de rand par mt_rand...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
t'as pas activé les erreurs pour PDO ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Alors, comme je l'ai mentionné, le fait de mieux générer mes phrases aléatoires m'a permi de résoudre le problème. Encore que je ne comprenne pas bien pourquoi la génération de 43 parmi 10 caractères ne permette que 4096 triplets en utilisant rand()...
Le souci c'est que je n'avais pas de message d'erreur, le retour de $stmt->execute était bien true à chaque fois - donc je suppose que les entrées étaient simplement écrasées et que c'est la génération aléatoire qui était en cause.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
si tu veux t'as openssl_random_pseudo_bytes, mais ca marche pas très bien (assez lent sous win)
__________________
http://blog.stealth35.com/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com