Witam,
posiadam tabelę w mysql z produktami do sklepu internetowego. Tabela zawiera około 60 tysięcy rekordów. Jeden rekord to jeden produkt.
Raz dziennie odbywają się aktualizacje cen oraz stanów magazynowych. Dane te pobierane są z kilkunastu plików XML. W tabeli jest informacja, w którym pliku znajdują się dane dotyczące produktu.
Szukam zatem najbardziej optymalnego rozwiązania do aktualizacji stanów magazynowych oraz cen.
Pierwsza metoda, której próbowałem to oczywiście przemielenie wszystkich plików XML od góry do dołu oraz UPDATE na tabeli dla każdego produktu.
I mam tutaj pierwsze pytanie - czy bardziej optymalnym rozwiązaniem byłoby w pierwszej kolejności wyszukanie produktu w tabeli w celu porównania danych (czy dane produktu w XMLu uległy zmianie względem tabeli) a później aktualizacja, czy jednak stosowanie UPDATE przy każdym produkcie?
Druga metoda to osobna tabela do stanów i cen. Uprzednio czyszczę całą tabelę a później wrzucam na nowo każdy rekord z XMLa.
Byłoby to dobre rozwiązanie, jednak znacząco utrudnia mi pracę nad listowaniem produktów w danej kategorii. Dajmy na to mam kategorię, do której należy 7000 produktów. Spowalnia to poruszanie się po witrynie ponieważ za każdym razem muszą być wyszukiwane ceny w tabeli liczącej 60tys rekordów, dlatego ta metoda odpada.
I tutaj rodzi się kolejne pytanie, czy może jest jakiś inny sposób, który pozwoliłby mi zaktualizować te dane w tabeli z produktami raz, dobrze i sprawnie?