![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 17.03.2009 Skąd: Karpacz Ostrzeżenie: (0%) ![]() ![]() |
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- |
![]()
Post
#2
|
Goście ![]() |
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. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 17.03.2009 Skąd: Karpacz Ostrzeżenie: (0%) ![]() ![]() |
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ą. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 17.03.2009 Skąd: Karpacz Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
array_key_diff pod warunkiem że kluczami tablicy z XML i bd będą ID produktów
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 17.03.2009 Skąd: Karpacz Ostrzeżenie: (0%) ![]() ![]() |
To nie przejdzie id produktu w bazie jest kluczem a sparwdzanie robie po "PN" (kod produktu), w XMLu kluczem jest PN="AWSP61212P"
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
O ile PN jest Uniq to nie ma problemu, możesz pobrać to zamiast ID i zastosować ten sam mechanizm.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:25 |