Čo znamená veľký? Vieš ho aspoň stiahnuť pomocou file_get_contents? Ak áno, tak nie je problém.
Importovať to celé odznovu nemusí byť zlé riešenie, ak je v tom XML súbore naozaj všetko, čo tam má byť - čiže nepotrebuješ nechávať históriu, žiadny update, len to tam nasypať. V tomto prípade to ale musíš urobiť celé v transakcií, aby sa nestalo, že do db niekto príde a bude tam 0 záznamov. Tiež, pri veľkých dátach, radšej najprv ulož xml (transformované do sql) na disk a použi import do MySQL cez shell, nie cez php.
Ak potrebuješ aj históriu a iba nové položky: Prechádzať to položku po položke je hovadina. Urobiť z toho jeden veľký SQL dotaz (typu "insert or on duplicate key update") je trošku lepšie, ale stále dosť na prt. Ja by som to robil tak, že by som si urobil import do prázdnej "prechodnej" tabulky (rovnaká, alebo podobná štruktúra, ako cieľová tabuľka, ale bude len ako "medzistanica" pre dáta, takže ju môžeš vždy na začiatku celú zmazať). Následne už import zmien bude záležitosť čistého SQL, takú transformáciu urobíš na jeden dotaz (pomocou insert select)
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |