![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, od pewnego czasu borykam się z pewnym problemem.
Opiekuję się serwisem, który codziennie wymaga aktualizacji bazy danych poprzez import kilku plików XML do bazy danych (MYSQL). Pliki są wielkośći kilkunastu bądź kilkudziesięciu MB. W celu sprawnego importu dziele je na mniejsze porcje rzędu 1MB a nastepnie importuje pokoleji. Baza danych zawierająca oferty składa się kilku tabel w ktorych liczba rekordow wacha sie od kilkunastu tysiecy do 1,5 mln rekordow. W kazdej tabeli jest zdefiniowanych po kilka indeksów (w celu sprawnego dzialania wyszukiwarki w ktorej niezbedne jest łączenie kilku tabel poprzez JOIN) jednak podczas importu (innstrukcji INSERT , UPDATE), koniecznosc aktualizacji indeksow sprawia ze trwa on o wiele dluzej i przez 3-4 godz serwis staje sie praktycznie nie dostepny dla uzytkownikow. Chodzi o to ze na tabele zapewne nakladane sa blokady podczas wykonywania instrukcji INSERT oraz UPDATE. Serwis praktycznie zamiera poniewaz nie moze korzystac z tych tabel. Ma ktos moze pomysl jak rozdzielic dostep do zasobow , tak aby import oraz serwis dzialal sprawnie? Serwis jest typu http://travelplanet.pl i mysle ze posiada podobna ilosc ofert (to tak dla zobrazowania z czym mam doczynienia...). |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 29.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, tak ciagne z merlina tzn dokladniej mam pliki z merlina ktore wrzucane sa na serwer, no i pozniej import..., pozatym mam kilka plikow w formacie txt i to przy nich w tej chwili jes najwiekszy problem. W pliku 16MB jest ok 100tys ofert. A co do polecanego rozwiazania " LOAD DATA INFILE " nie za bardzo jest mozliwosc jego zastoswania poniewaz dane musza byc importowane do kilku tabel. a co za tym idzie aby zaimportowac ceny do danej oferty wczesniej musi byc zaimportowana sama oferta i pobrany z niej ID. Takze dla kazdej oferty niestety musi chyba byc INSERT lub UPDATE , jak rowniez dla tabel cen , hoteli i pozostalych.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 02:05 |