PHP kann die OSM-XML-Dateien sehr schnell im Stream parsen. Ansonsten solltest Du vielleicht mal eine eigene Datenbank im Blick behalten. So kannst Du via SQL-Abfragen einfach alles das rausselektieren, wie Du es brauchst.