Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak sprawnie wgrać 100.000 rekordów do baz
Forum PHP.pl > Forum > Bazy danych > MySQL
gump
Witam ponownie z centrum Polski smile.gif
Mam następujące pytanie. Tworzę system zarządzający dużą ilością informacji pochodzących z przestarzałego systemu sprzedaży. Obecnie system jest na ukończeniu, baza działa itepe itede. Jednakże po skończeniu aplikacji będę musiał jeszcze raz wgrać całą bazę (2x 100.000 rekordów). Mam gotowe pliki z zapytaniem SQL. Jednakże aby dało się je, za pomocą PHPmyAdmina wgrać, muszę ciąć pliki na kawałki po 5.000 rekordów. Łatwo więc policzyć, że powstanie 40 plików, które mój komputer (Celeron 2,2, 256 DDRAM - niestety laptopik) będzie mielił pewnie kilka dni (jeśli nie stracę po drodze cierpliwości aby zmieniać pliki co godzinę myślenia).
Próbowałem grzebać w ustawieniach mysqla, ale mimo ustawienia wszystkich zmiennych (stanowiących limity na paczki itp.) na kilkakrotnie wyższe nadal mysql + apache nie trawi plików większych niż 5.000 rekordów. Podglądając w menedzerze zadań XP po wgraniu pliku sql większego niż wspomniany - procesor ani drgnie (w IE widać jakby coś się działo). Będę bardzo wdzięczny za wskazówki jak dokonać hurtowego wgrania 100.000 rekordów przy minimalizacji czasu i użycia procesora winksmiley.jpg
Z pozdrowieniami,
Michal S.
radzaw
proponuje zainteresowac sie klientem mysql dostarczanym razem z serwerem - o nazwie po prostu 'mysql' lub 'mysql.exe' np.:

mysql -u user -p -D baza <plik_z_zapytaniami_sql.sql
uboottd
Sprobuj zmienic zapytania na postac
[sql:1:655301c284]
INSERT INTO ... VALUES (...),(...),(...)...
[/sql:1:655301c284]
bedzie wstawial Ci znacznie szybciej.

Skad takie dziwne ograniczenie to nie wiem, ja mam tabele ktora mysqldump podzielil na trzy zapytani a ma ~27.000 wierszy (trzy zapytania, zeby miescily sie w standartowej megabajtowej paczce)
gump
Cytat
Sprobuj zmienic zapytania na postac
[sql:1:12d44ec103]
INSERT INTO ... VALUES (...),(...),(...)...
[/sql:1:12d44ec103]
bedzie wstawial Ci znacznie szybciej.


Generalnie konstrukcja zapytan wygladala wlasnie w przytoczony przez Ciebie sposob. Niestety nie funkcjonowalo to sprawnie.

Skorzystalem z programu MyManager - swoja droga baaardzo fajny program - i zaimportowalem wszystkie rekordy do bazy prosto z pliku DBF (trwalo to 15 minut - SUUUPER!). Wczesniej z pliku tego eksportowalem zapytanie za pomoca programu DBF Viewer & Editor.
Dzieki wielkie mimo wszystko za pomoc!
Teraz mam inny problem, ale o tym w wątku: Nie realizuje zapytania, czy to wina wielkiej ilości rekordów?
Pozdrawiam!
uboottd
Musialbys miec naprawde chora ich ilosc. Trudno powiedziec bez dokladnego opisu co sie dzieje.
brasil_pl
jakiś czas temu napisałem skrypt który obsługuje import z DBF'a do MySQL'a 300.000 rekordów (cennik części zamiennych SCANIA), kwestia kilku minut na localu a na komercyjnym serwerze www jeszcze szybciej...
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.