Ton script est parfaitement optimisé.
Néanmoins, chez nous on parse le XML (fichier de parfois plusieurs Go) en AWK compilé (PERL est censé faire mieux) avec ">" comme séparateur de champ et "<" comme fin de ligne. C'est bateau et cela ne vérifie pas la conformité XML mais quand on connait le format, avec un tel traitement on peux parser même un fichier XML mal formaté et c'est très rapide. Pour le charger en base on écrit des fichiers CSV car le LOAD DATA est ce qui ce fait de mieux pour MySQL. Il faut savoir que l'on peut écrire une ligne CSV très rapidement sans avoir tout en mémoire juste en sachant ce que l'on traite.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
# SI je puis me permettre de suggérer?
Posté par abriotde (site web personnel, Mastodon) . En réponse au journal Optimisez votre code !. Évalué à 3.
Ton script est parfaitement optimisé.
Néanmoins, chez nous on parse le XML (fichier de parfois plusieurs Go) en AWK compilé (PERL est censé faire mieux) avec ">" comme séparateur de champ et "<" comme fin de ligne. C'est bateau et cela ne vérifie pas la conformité XML mais quand on connait le format, avec un tel traitement on peux parser même un fichier XML mal formaté et c'est très rapide. Pour le charger en base on écrit des fichiers CSV car le LOAD DATA est ce qui ce fait de mieux pour MySQL. Il faut savoir que l'on peut écrire une ligne CSV très rapidement sans avoir tout en mémoire juste en sachant ce que l'on traite.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.