![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 1.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Otrzymałem 130MB plik .csv z zadaniem zaimportowania go do bazy MYSQL. Problem w tym, że funkcje file, oraz file_get_contents odczytują cały plik co wywołuje zwrócenie błędu o przekroczeniu pamięci. Ustawienie w php.ini memory_limit na wartość graniczną stabilnej pracy serwera - też nie pomaga. Rozwiązaniem problemu była by funkcja która w parametrach przyjmuje linie "od - do", której ma czytać plik. Coś jak SQL LIMIT . (by nie tworzyć drugiego tematu): Znacie jakieś programy, które radzą sobie z tak dużymi plikami na XP/7/Ubuntu ? Próbowałem Wordem, Exelem, VIM'em, Geditem i openofficem - wszystkie albo się przywieszały (na windach) lub były killowane na Ubuntu. Dziękuję z góry za rady. Pozdrawiam i wracam na Google. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
1) fopen + fread (nie fgetcsv bo źle działa na utf) - przy złych wiatrach ta kombinacja tez może sie wysypać.
2) zaimportować bezpośrednio do mysql (google -> mysql csv import) Ten post edytował wookieb 27.10.2010, 09:19:34 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 1.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
1) sprawdzę
2) plik .csv nie zawiera informacji o tym do jakiej bazy/tabeli/kolumny ma wrzucić więc wątpię czy to się uda. [EDIT] Udało mi się w ten sposób: - przerzuciłem plik na silniejszy serwer gdzie skrypt dorobił zapytanie - wygenerował plik zapytania .sql ~500MB - zaimportowałem plik .sql w konsoli Pozdrawiam. Ten post edytował Juzek 27.10.2010, 12:58:29 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Na phpclasses była kiedyś klasa do strumieniowego czytania plików CSV. Radziła sobie z tym zadaniem doskonale, ale linka nie jestem w stanie podać, bo nie pamiętam. [;
Gdzieś w archiwum to mam, ale skoro już sobie poradziłeś... [; -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:40 |