dje31
10.05.2014, 21:20:52
WItam
Wiem że temat był kilkakrotnie walkowany ale:
Mam link do pliku .xml z okolo 44 000 produkatmi w prawie 50 kategoriach itd ...
W bazie mam już zaimplemenowane produkty z tego xmla - tylko z 15 kategorii czyli powiedzmy 20 000 produktów.
I teraz musze przygotowac codzienny update tych produktów wzgledem XMLa (cena, stan itd ...)
I moje pytania brzmi jak taki manewr zoptymalizować ?
Czyli jak to zrobić najefektywniej ?
Moje dwa pomysly:
1. Pobrać produkty z bazy danych do tablicy, do drugiej pobrać wszystkie (z 15 kat)z XMLa i porownywać wg ID jest to edit nie ma insert.
2. Pobrać produkty z XMla do tablcy i sprawdzić czy ID jest w bazie jak jest to nadpisać stan cene itd .. jak nie ma to insert .
Co bedzię bardziej optymalne ?
Z góry dzięki
Pozdrawiam
sdsd
10.05.2014, 22:12:45
Jeśli robisz to w cronie o 3 w nocy to nie ma to znaczenia.
Całą operacja zajmie ci 3 sekundy i nikt nie zauważy o tej godzinie spowolnienia strony.
dje31
11.05.2014, 09:18:48
TAk robić bede Cronem.
Czy bedze to rwalo 3 sek to nie jestem do konca przekonany.
Ale mi chodzi o to czy szybciej zaciagac plik XML do tablicy i spawrdzac z bazą czy bazę z plikiem ?
Ze względu na to że plik posiada wiecej produktów i kategorii niż te które mnie interesują.
Pyton_000
11.05.2014, 10:35:13
I tak musisz przeleciec caly plik.
XMLReader pobierz sobie wszystkie niezbedne dane typu id, cena, stan, pobierz id z bazy danych, zrob diff i update tego co zostanie.
dje31
11.05.2014, 12:31:05
To fakt raz musze zaciagnac cały plik.
XMLReader zapisze info ale "DIFF" ? Nigdy nie uzywałem ...
Jakiś link do tego ? w Manualu znalazłem tylko "PHP: DateTime::diff"
Zresztą wrazie coś bez diffa tez polecę dalej ale dlaczego nie zaimplementować coś nowego == szybszego.
Pyton_000
11.05.2014, 12:35:31
array_key_diff pod warunkiem że kluczami tablicy z XML i bd będą ID produktów
dje31
11.05.2014, 12:44:09
To nie przejdzie id produktu w bazie jest kluczem a sparwdzanie robie po "PN" (kod produktu), w XMLu kluczem jest PN="AWSP61212P"
Pyton_000
11.05.2014, 20:00:25
O ile PN jest Uniq to nie ma problemu, możesz pobrać to zamiast ID i zastosować ten sam mechanizm.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.