phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

Leistungsprobleme beim PhpMyAdmin-Datenimport

Ändern Sie die maximale Größe Ihres PHP-Uploads.

Wissen Sie, wo sich Ihre php.ini-Datei befindet?

Versuchen Sie zunächst, diese Datei in Ihr Web-Stammverzeichnis zu kopieren:

phpinfo.php

(siehe http://php.net/manual/en/function.phpinfo.php )

enthält:

<?php

phpinfo();

?>

Navigieren Sie dann zu http://www.yoursite.com/phpinfo.php

Suchen Sie nach "php.ini".

Um große Dateien hochzuladen, benötigen Sie max_execution_time, post_max_size, upload_max_filesize

Wissen Sie auch, wo sich Ihre error.log-Datei befindet? Es würde Ihnen hoffentlich einen Hinweis darauf geben, was schief läuft.

BEARBEITEN:

Hier ist die Abfrage, die ich für den Dateiimport verwende:

$query = "LOAD DATA LOCAL INFILE '$file_name' INTO TABLE `$table_name` FIELDS TERMINATED BY ',' OPTIONALLY
    ENCLOSED BY '\"' LINES TERMINATED BY '$nl'";

Wobei $file_name der temporäre Dateiname aus der globalen PHP-Variable $_FILES ist, $table_name die bereits für den Import vorbereitete Tabelle und $nl eine Variable für die csv-Zeilenenden ist (standardmäßig Windows-Zeilenenden, aber ich habe eine Option zur Auswahl der Linux-Zeile Endungen).

Die andere Sache ist, dass die Tabelle ($table_name) in meinem Skript im Voraus vorbereitet wird, indem zuerst die CSV-Datei gescannt wird, um die Spaltentypen zu bestimmen. Nachdem es geeignete Spaltentypen bestimmt hat, erstellt es die MySQL-Tabelle zum Empfangen der Daten.

Ich schlage vor, dass Sie zuerst versuchen, die MySQL-Tabellendefinition zu erstellen, um den Inhalt der Datei (Datentypen, Zeichenlängen usw.) abzugleichen. Versuchen Sie dann die obige Abfrage und sehen Sie, wie schnell sie läuft. Ich weiß nicht, wie viel Geschwindigkeit die MySQL-Tabellendefinition ausmacht.

Außerdem habe ich keine Indizes in der Tabelle definiert, bis die Daten geladen sind. Indizes verlangsamen das Laden von Daten.