Zmień maksymalny rozmiar przesyłania php.
Czy wiesz, gdzie jest twój plik php.ini?
Przede wszystkim spróbuj umieścić ten plik w swoim katalogu głównym:
phpinfo.php
( patrz http://php.net/manual/en/function.phpinfo.php )
zawierające:
<?php
phpinfo();
?>
Następnie przejdź do http://www.yoursite.com/phpinfo.php
Poszukaj "php.ini".
Aby przesłać duże pliki, potrzebujesz max_execution_time, post_max_size, upload_max_filesize
Czy wiesz, gdzie znajduje się plik error.log? Miejmy nadzieję, że da ci wskazówkę, co jest nie tak.
EDYCJA:
Oto zapytanie, którego używam do importu pliku:
$query = "LOAD DATA LOCAL INFILE '$file_name' INTO TABLE `$table_name` FIELDS TERMINATED BY ',' OPTIONALLY
ENCLOSED BY '\"' LINES TERMINATED BY '$nl'";
Gdzie $nazwa_pliku to tymczasowa nazwa pliku z globalnej zmiennej php $_FILES, $nazwa_tabeli to tabela już przygotowana do importu, a $nl to zmienna dla zakończeń linii csv (domyślnie dla zakończeń linii windows ale mam możliwość wybrania linii linux zakończenia).
Inną rzeczą jest to, że tabela ($nazwa_tabeli) w moim skrypcie jest przygotowywana z wyprzedzeniem poprzez skanowanie csv w celu określenia typów kolumn. Po określeniu odpowiednich typów kolumn tworzy tabelę MySQL do odbioru danych.
Proponuję najpierw utworzyć definicję tabeli MySQL, aby dopasować zawartość pliku (typy danych, długość znaków itp.). Następnie wypróbuj powyższe zapytanie i zobacz, jak szybko działa. Nie wiem, jak duży wpływ na szybkość ma definicja tabeli MySQL.
Ponadto nie mam żadnych indeksów zdefiniowanych w tabeli, dopóki PO załadowaniu danych. Indeksy spowalniają ładowanie danych.