![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zablokowani Postów: 120 Pomógł: 2 Dołączył: 4.11.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam,
Nie jestem wymiataczem co do MySQL'a, ale ten problem już mnie totalnie dobił. Otóż mam tabelę, do której chciałbym załadować wszystkie dane z pliku tekstowego. Poniżej pełny kod, jaki do tego stosuję: Kod <?php include("cfg/bazka.php"); $ladowanie = "c:\\/usr\\/krasnal\\/www\\/dane\\/tekstowy.txt"; $polecenie = "LOAD DATA INFILE '$ladowanie' INTO TABLE dane FIELDS TERMINATED BY '\t' ENCLOSED BY '\"'"; $wyk = mysql_query( $polecenie, $link ) or die( mysql_error() ); echo "Zapisywanie danych zakończone powodzeniem!"; ?> W pliku tekstowy.txt mam ponad 6 milionów wierszy. Na początku próbowałem zassać wszystko za jednym razem. Załadowało bez problemu nieco ponad 3 miliony - i wyświetliło komunikat, że operacja została wykonana. Cóż, pomyślałem, że widocznie obowiązuje tutaj jakiś limit - czy to na bazę, czy też w samych ustawieniach MySQL'a (mówiłem, że nie jestem wymiataczem...). No więc podzieliłem ten plik TXT na kilka mniejszych, po 1 milion rekordów każdy. Wrzucam pierwszy (z 1 milionem rekordów). Załadowało dokładnie 500 tys. - i "zakończyło powodzeniem". Dla testów zapuściłem upload tego samego pliku kilka razy z rzędu - za każdym razem ładowało 500 tysięcy linii i kończyło "powodzeniem". Po takich testowych uploadach mam już tabelę liczącą 7 milionów rekordów - 14 razy załadowałem pierwszych 500 tysięcy linii tego samego pliku... Rozumie ktoś, na czym może polegać problem? Byłbym wdzięczny za info, gdyby ktoś z Was spotkał się z czymś podobnym... Pozdrawiam, Dawid |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 312 Pomógł: 0 Dołączył: 29.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
czy próbowałeś wykonać tą operację z wiersza poleceń ?
-------------------- ![]() ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zablokowani Postów: 120 Pomógł: 2 Dołączył: 4.11.2004 Ostrzeżenie: (10%) ![]() ![]() |
Tak, próbowałem - jest dokładnie to samo...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Mysle, ze najlepszym wyjsciem bedzie sprawdzenie ustawien mysql, ktore sa opisane w dokumentacji. Pierwsze co bym zrobil to wlasnie tam bym zajrzal.
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#5
|
|
Grupa: Zablokowani Postów: 120 Pomógł: 2 Dołączył: 4.11.2004 Ostrzeżenie: (10%) ![]() ![]() |
Wierz mi, sf, nie napisałem tutaj nie zajrzawszy wcześniej we wszystkie znane mi miejsca...
Zrobiłem natomiast kolejny test - wykonałem to samo zapytanie, ale bez ENCLOSED BY '\"' Efekt: zassało wszystkie wiersze z pliku... Tylko teraz na początku i końcu pól tekstowych są cudzysłowy! Z tym już powinienem sobie poradzić, więc dzięki wszystkim, którzy zadali sobie trud i zastanowili się nad tym problemem... ![]() Pozdrawiam, Dawid |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
jest jeszcze opcja:
a szczegoly calego polecenia w manualu. -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 00:29 |