Witam,
Kilka lat temu stworzyłem skrypt do przetwarzania plików XML -> SQL.
Działał szybko i tak jak chciałem, jednak plik XML był mały <500kb
Z czasem rósł i rósł, a teraz ma 5 Mb. Gdybym sam tworzył ten plik (własnym programem) to udałoby mi się zmniejszyć jego objętość do 3Mb.
Postanowiłem zmienić architekturę skryptu, w sumie napisać od nowa.
Jedną ze zmian było zmiana klasy SimpleXML na XMLReader. Wydajność poprawiła się piorunująco, ale wciąż serwer mieli i mieli. (host nazwa.pl)
Baza danych ma za zadanie aktualizować ceny w sklepie internetowym, a skrypt prze konwertować bo nie można wrzucić danych 1:1 tylko trzeba zrobisz szereg czynności czyszczące brudy.
Prosiłbym o rady... jak przyśpieszyć działanie skryptu który mieli 30s do nawet 2 minut.
- Mój pomysł na przyszłość, to podział bazy na paczki po 1000 rekordów i dopiero je przetwarzać.
- Wczytywać poprzedni plik, archiwalny i porównywać najpierw które rekordy się zmieniły i je tylko przetwarzać. (acz nie wiem czy wczytanie 2x po 5Mb nie będzie jeszcze jeszcze gorzej z wydajnością)