XML-File, MB, GB und RegEx

Für ein aktuelles Projekt war es notwendig, alle URLs aus dem File structure.rdf.u8.gz(Stand 20.12.2005) des open directory project zu extrahieren. Für alle, die das Selbe vorhaben und dafür PHP einsetzen, mal ein paar Hinweise.

  • auspacken der ~300MB großen Datei structure.rdf.u8.gz, man hat danach ein etwa 2GB großes XML-File

  • auf einem 1.5 GHz-Rechner mit 256 MB RAM den Wert max_execution_time in der php.ini auf einen Wert von etwa 22.000 setzen(entspricht etwas mehr als 6 h)

  • ein entsprechendes Script schreiben, welches mittels RegEx die URLs holt und in eine DB schreibt(in meinem Fall MySql)

  • das Script über das PHP-CLI starten und warten

  • der enstandene MySql-Dump hatte eine Größe von ~400MB(Inno-DB), enthält nur ein Auto_Increment und die URLs(in etwa 4.500.000 Stück)


Der Rechner sollte in der Zeit keine anderen Aufgaben haben.




Tags für diesen Artikel:

About this entry