Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Import dużej bazy - bardzo długi czas
pitbull82
post
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Witam

Mam problem z importem dużych baz danych MySQL (z serwera na localhost). Do importu jedna tabela w InnoDB, Baza w rozmiarze 1 GB, która ma 2,4 mln rekordów wgrywa mi się prawie 14 godzin, czyli jak na moje oko znacznie za długo. Bazę wyeksportowałem MYSQLdumperem, importuję też MYSQLdumperem. Nie robiłem co prawda żadnych testów, ale przy imporcie z linii komend, wcale nie wygląda żeby to szło szybciej.

Być może można coś w konfigu mysqla zmienić, ale nie bardzo wiem co, żeby szło szybciej.

Jeśli ktoś ma jakieś doświadczenie w tym temacie byłbym wdzięczny za wskazówkę.

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Spróbuj tego
http://www.wojtekww.net/import-duzych-baz-danych-mysql/

tho ... pierwszy link z google'a biggrin.gif


--------------------
Go to the top of the page
+Quote Post
pitbull82
post
Post #3





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Dzięki za pomoc, szukałem ale po innych zapytaniach. Polecenia source akurat tam nie znalazłem.

Zrobiłem test z pełnymi dodaniami i z rozszerzonymi (eksport przez phpmyadmina) - w przypadku pełnych dodań działa wolno, to w przypadku rozszerzonych działań prawie 350 tys. rekordów zaimportowało się w czasie poniżej 5 minut (nie sprawdzałem dokładnie czasu, ale na pewno poniżej 5 minut), więc widzę że ma to ogromny wpływ na szybkość importu.

Problem z pierwszego posta - wszystko było z pełnymi dodaniami (tak wyeksportowałem), więc być może dlatego też z konsoli trwało mi to długo tak jak w przypadku source.

Pozostaje w takim razie jeszcze jedno pytanie, skoro wiem już jak zrobić szybki import - czym wyeksportować bazę danych żeby były rozszerzone dodania a nie pełne? PhpMyAdmin w przypadku naprawdę dużej tabeli może chyba nie dać rady - czasami miałem mniejszą bazę i się zaczynało pobieranie pliku php w przeglądarce...


--------------------
Go to the top of the page
+Quote Post
melkorm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


http://dev.mysql.com/doc/refman/5.1/en/mys...extended-insert
+ ewentualnie to http://dev.mysql.com/doc/refman/5.1/en/mys...p_skip-comments

Drugie tylko zmniejszy wielkość pliku wink.gif


--------------------
Go to the top of the page
+Quote Post
pitbull82
post
Post #5





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


No tylko że niestety na serwerze nie mam dostępu do linii komend tak jak na localhoscie smile.gif


--------------------
Go to the top of the page
+Quote Post
melkorm
post
Post #6





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


a przez system nie da rady? biggrin.gif

PS. I co to za serwer bez SSH i mysqldump'a :/ ? Nawet druga wirtualka w OVH to ma ....
PS2. PMA ma opcję multi-inserts przy eksporcie wink.gif

Ten post edytował melkorm 6.01.2012, 11:50:45


--------------------
Go to the top of the page
+Quote Post
pitbull82
post
Post #7





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


No niestety większość kont hostingowych które mam nie ma dostępu przez ssh. PhpMyAdmin wiem że ma tę opcję, ale nie zawsze uda się wyeksportować dużą bazę danych phpmyadminem.


--------------------
Go to the top of the page
+Quote Post
melkorm
post
Post #8





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat
PhpMyAdmin wiem że ma tę opcję, ale nie zawsze uda się wyeksportować dużą bazę danych phpmyadminem.


To eksportuj częściami wink.gif W sensie po kilka tabel, lub zmień hosting x)


--------------------
Go to the top of the page
+Quote Post
pitbull82
post
Post #9





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Zmiana hostingu nie wchodzi w rachubę, eksport częściowy mało wygodny. Wierzę że jest jakieś narzędzie, które zrobi eksport całości z rozszerzonymi dodaniami.

Tak swoją drogą to właśnie mam ten problem - próbowałem wyeksportować całą jedną tabelę w phpmyadminie i przy imporcie po jakimś czasie wyskakiwał błąd. Udało mi się w końcu podejrzeć zawartość zrzutu i na samym końcu w pewnym momencie pliku mam przekroczenie parametrow serwera


--------------------
Go to the top of the page
+Quote Post
melkorm
post
Post #10





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No pewnie pamięć / procek zostało przekroczone, najprawdopodobniej to pierwsze.

Przy takim hostingu będziesz miał wielki problem bo bez konsoli, to każde narzędzie będzie uzależnione od tych samych parametrów co phpMyAdmin itp (czyli ustawionych przez serwer).

Próbowałeś przez system odpalić komendę mysqldumpa ?


--------------------
Go to the top of the page
+Quote Post
by_ikar
post
Post #11





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


A ja polecam do importu i exportu w miejscach gdzie nie można skorzystać z konsoli, do skryptu który bardzo dobrze sobie radzi z importem i exportem bardzo dużych baz danych, SypexDumper: http://sypex.net/en/ działa całkiem przyzwoicie. A nawet w skrajnych przypadkach może nam posłużyć jako automatyczny backup bazy danych wink.gif
Go to the top of the page
+Quote Post
pitbull82
post
Post #12





Grupa: Zarejestrowani
Postów: 167
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


Dzięki, wygląda bardzo obiecująco. Co prawda wszystkie dane są w jednym dodaniu, ale skrypt sobie to ładnie potem importuje.

Test zrobiony na razie tylko localhoscie dla miliona rekordów, ale eksport i import przebiegł bez problemów. Import trwał 2,5 minuty. Skrypt nawet w darmowej wersji spokojnie powinien starczyć.

Ps. Jakiś czas temu dzisiaj byłem już na stronie tego programu, ale nie było nic o rozszerzonych dodaniach, więc myślałem że nie da rady, a chyba się myliłem.

-- EDIT --

Wygląda na to, że jedyne do czego się mogę przyczepić to zliczenie rekordów przy eksporcie - pokazuje 2 608 616 a naprawdę jest 2 723 162 (przy imporcie już dobrze pokazuje). W kilkanaście minut wyeksportowałem i zaimportowałem bazę. Jeszcze wczoraj import podobnej tabeli zajął mi kilkanaście godzin, także by_ikar wielkie dzięki

Ten post edytował pitbull82 6.01.2012, 14:50:18


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:04