Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ XML _ Import dużego XML do PostgreSQL

Napisany przez: antek1227 10.09.2014, 21:27:39

Witam,
Piszę aplikację, która bedzie ładowała do bazy danych pliki XML, o pojemności 200-500MB. Jedną z znanych mi metod jest zastosowanie simplexml, ale nie działa to wydajnie.
Zadanie będzie polegało najpierw na wczytaniu wszystkich danych (w php będą one walidowane, pod kontem zgodności z przyjętym standardem), a następnie będzie szła aktualizacja raz dziennie, i jeżeli będzie się coś zmieniać, to dane zostaną nadpisane, dodane, bądź usunięte. Nie ukrywam, że zależało by mi na lepszej wydajności, ponieważ są też problemy z serwerem, na którym rozwiązanie testowaliśmy.
Czy znacie jakieś lepsze metody na import takiego pliku, które działają wydajniej? Może jakiś sposób, na inne rozwiązanie tego porblemu.
Z góry dzięki za odpowiedzi
Pozdrawiam

Napisany przez: zegarek84 10.09.2014, 22:18:27

na pewno raczej nie muszę pisać, iż dane te muszą być wgrane w jednej sesji... ale to mało, by nie sprawdzać czy robić update czy insert to najlepiej dane wgrać w sesji do tabeli tymczasowej a potem jednym zapytaniem tam gdzie są unikalne rekordy powtarzające się jakoś rozpoznawalne zrobić update a na różnicy kolejnym zapytaniem insert wielu rekordów na raz... na koniec oczywiście delete tymczasowej tablicy... a jeśli problem jeszcze jest z pamięcią po stronie PHP to programowanie zdarzeniowe + SAX (Simple API for XML)...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)