roro59650
Messages postés99Date d'inscriptionvendredi 20 avril 2007StatutMembreDernière intervention28 juillet 2011
-
24 juin 2011 à 10:42
roro59650
Messages postés99Date d'inscriptionvendredi 20 avril 2007StatutMembreDernière intervention28 juillet 2011
-
24 juin 2011 à 14:48
Bonjour à toutes et tous!
Voilà, je suis dans une petite panade...
Pour une appli, il faut que je lise une table sur une base Access, qui contient 1 150 000 lignes. Et ensuite, il faut que l'introduise sur une base MySql.
J'utilise PDO pour lire les base Access et MySql.
Mais je ne trouve pas comment faire pour qu'un variable puisse enregistrer un million de lignes... Car j'ai toujours un problème de "Fatal error: Out of memory (allocated 1702100992) (tried to allocate 44 bytes) in db.php on line 35".
J'ai donc une erreur sur la ligne "$h_data = $this->sth->fetchAll(PDO::FETCH_ASSOC);". J'ai beau augmenter la memory_limit à des valeurs folles (5 000 000M), ça ne change rien.
Si je fais un memory_get_peak_usage, il me met 1.58 GB quelle que soit la limite que je met...
roro59650
Messages postés99Date d'inscriptionvendredi 20 avril 2007StatutMembreDernière intervention28 juillet 20111 24 juin 2011 à 14:48
Merci pour vos réponses rapides!
Mais vu qu'il n'y a pas d'équivalence de Rownum, ou limit, je fait faire un TOP de la moitié des champs triés selon l'identifiant par ordre croissant ou décroissant.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020370 24 juin 2011 à 13:15
augmenter la augmenter la memory_limit ne change rien, c'est les limites de la mémoire physique qui sont atteintes, a part ajouter de la ram, il n'y a rien à faire
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 24 juin 2011 à 14:23
Alors ça remonte à trèèèèès longtemps..
J'avais utilisé la fonction TOP dans le SELECT (ROWNUM c'est Oracle non ??) et effacer N enregistrements et le tout en boucle..
Autre méthode, tu cherches dans une colonne toutes les valeurs distinctes et tu fais un select sur un filtre sur cette colonne et tu boucles..
S.