Změňte maximální velikost nahrávání php.
Víte, kde je váš soubor php.ini?
Nejprve zkuste tento soubor vložit do svého webového kořenového adresáře:
phpinfo.php
(viz http://php.net/manual/en/function.phpinfo.php )
obsahující:
<?php
phpinfo();
?>
Poté přejděte na http://www.yoursite.com/phpinfo.php
Hledejte „php.ini“.
K nahrání velkých souborů potřebujete max_execution_time, post_max_size, upload_max_filesize
Také víte, kde je váš soubor error.log? Doufejme, že vám to poskytne vodítko, co se děje.
EDIT:
Zde je dotaz, který používám pro import souboru:
$query = "LOAD DATA LOCAL INFILE '$file_name' INTO TABLE `$table_name` FIELDS TERMINATED BY ',' OPTIONALLY
ENCLOSED BY '\"' LINES TERMINATED BY '$nl'";
Kde $file_name je dočasný název souboru z globální proměnné php $_FILES, $table_name je tabulka již připravená k importu a $nl je proměnná pro zakončení řádků csv (výchozí nastavení pro zakončení řádků systému Windows, ale mám možnost vybrat řádek linux konce).
Další věc je, že tabulka ($table_name) v mém skriptu je připravena předem tak, že se nejprve naskenuje csv, aby se určily typy sloupců. Poté, co určí vhodné typy sloupců, vytvoří tabulku MySQL pro příjem dat.
Navrhuji, abyste nejprve zkusili vytvořit definici tabulky MySQL, aby odpovídala tomu, co je v souboru (datové typy, délky znaků atd.). Pak zkuste výše uvedený dotaz a uvidíte, jak rychle běží. Nevím, jak velký vliv na rychlost má definice tabulky MySQL.
Také nemám v tabulce definované žádné indexy, dokud nebudou načtena data. Indexy zpomalují načítání dat.