Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Import danych do tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
sethir
Mam taki oto problem:

1. Jest sobie plik o strukturze:

nagł1;nagł2;nagł3;nagł4;nagł5
aaaa;bbbb;cccc;dddd;

rekord ma 22 pola a plik około 20 000 rekordów - ogólnie wielkość takiego pliku to jakieś 5 MB, plik będzie powtarzalnie importowany w cyklu dziennym, ilość rekordów będzie rosła w ciągu roku do liczby 300 000 rekordów dziennie.

2. Jest sobie tabela o strukturze:

id,aaaa,bbbb,cccc,dddd,eeee

I teraz pytanie:

W jaki sposób efektywnie importować taki zbiór danych do MySQL'a - pętla rekurencyjna odpada bo za długo takie zaimportowanie by trwało, aczkolwiek można weryfikować zawartość danych i modyfikować w locie poszczególne pola. Najlepsze efekty udało mi się uzyskać poprzez LOAD DATA INFILE ..... aczkolwiek musiałem plik najpierw przygotować do wczytania inaczej krzyczało błędami. Takie przygotowywanie mógłbym jeszcze wykonać np. jakimś batchem czy skryptem AWK na maszynie UX aczkolwiek nie wszystko mogę zrobić.

PS. Mam jeszcze jeden problem z tym plikiem ponieważ muszę wywalić pierwszy rekord (nagłówkowy) i dorzucić pierwsze pole tak aby struktura była taka (inaczej importuje się nie do tych pól lub krzyczy o długości):

0;aaaa;bbbb;cccc;dddd;

to czasami pojawia mi się informacja podczas importu: Incorrect string value: '\xA3AWA' for column 'tu nazwa pola' at row 1. no i import już się nie wykonuje - jak się tego pozbyć ?

Pozdrawiam
kris2
napisz skrypt ktory przygotuje i obrobi plik przed importem
mozesz uzyc php albo awk + sed + grep
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.