2 votes

Interroger un gros fichier XML (600mb+) en PHP ou JavaScript ?

J'ai un gros fichier XML (600mb+) et je développe une application PHP qui doit interroger ce fichier.

Mon approche initiale consistait à extraire toutes les données du fichier et à les insérer dans une base de données MySQL, puis à les interroger de cette manière. Le seul problème de cette approche était qu'elle était toujours lente, et que les données XML sont mises à jour régulièrement - ce qui signifie que je dois télécharger, analyser et insérer les données du fichier XML dans la base de données à chaque fois que le fichier XML est mis à jour.

Est-il réellement possible d'interroger un fichier de 600mb ? (par exemple, rechercher les enregistrements où TITLE="quelque chose ici" ?) Est-il possible de le faire dans un temps raisonnable ?

L'idéal serait de faire cela en PHP, mais je pourrais aussi utiliser JavaScript.

Toute aide ou suggestion est la bienvenue :)

1voto

Anton Gogolev Points 59794

Construire un DOM XML pour un document de plus de 600 Mo est certainement une façon d'échouer. Ce qu'il vous faut, c'est SAX -basée sur l'API. Cependant, SAX ne permet généralement pas d'utiliser XPath, mais vous pouvez l'émuler avec du code impératif.

En ce qui concerne la mise à jour du fichier, est-il possible de ne récupérer que les différences ? Cela permettrait d'accélérer considérablement le traitement ultérieur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X