Przyspieszenie importu dużego pliku SQL

Odpowiedz Nowy wątek
2019-01-16 22:13
0

Panowie mam problem do rozwiązania. Posiadam sporą bazę zawierającą dziesiątki tysięcy rekordów, gdzie każdy rekord w pliku SQL ma formę
INSERT INTO ..VALUES();
zamiast szybszej
INSERT INTO ... VALUES(...),(...),(...)(...)...;

Efekt jest taki że baza wrzucana na serwer poprzez polecenie mysql -h ..... -u -p < PLIK.SQL ładuje się kilkanaście minut. Gdybym mógł to korzystał bym z 2 wersji zapisu która jest o niebo szybsza bo nie wykonuje dziesiątek tysięcy kwerend tylko jedną.

Pytanie co można zrobić np. w ustawieniach serwera, lub jakich poleceń/parametrów użyć by ten proces znacznie przyspieszyć ?

edytowany 1x, ostatnio: mmilch, 2019-01-16 22:17

Pozostało 580 znaków

2019-01-16 22:18
1

Możesz np w takim notepad++ uzyć funkcji znajdź i zamień? No chyba, że masz tam różne tabele, wtedy byś musiał to pewnie zrobić jakoś ręcznie.
Możesz użyć jeszcze tego:

set unique_checks=0; 
set foreign_key_checks=0; 
set autocommit=0; 

Napisz jeszcze ile gb zajmuje ten plik.

edytowany 1x, ostatnio: axelbest, 2019-01-16 22:24

Pozostało 580 znaków

2019-01-16 22:31
0

Plik ma dosłownie 20MB i nie to jest ograniczeniem tylko właśnie liczba zapytań "INSERT INTO". Przerabiałem temat z fizyczną konwersją tekstu ale z pewnych powodów mi nie odpowiada. To że mam tyle zapytań jest rezultatem korzystania z konwertera DBF do SQL. Finalny SQL zawiera wiele tabel, każda w dużą ilością rekordów i stosunkowo niewielką ilością danych na pojedynczy rekord.

Pozostało 580 znaków

2019-01-16 22:40
0

Dobra załatwione :)

SET autocommit=0; załatwia sprawę - import teraz trwa kilka sekund zamiast 10 minut

"When importing data into InnoDB, turn off autocommit mode, because it performs a log flush to disk for every insert. To disable autocommit during your import operation, surround it with SET autocommit and COMMIT statements"

Dzięki axelbest

edytowany 1x, ostatnio: mmilch, 2019-01-16 22:41
Skoro tak, to może mi odpowiedzieć zaakceptować :) wiem.. wiem:) to jak błaganie o suby i lajki hehe - axelbest 2019-01-17 07:28

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0