phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

Problèmes de performances d'importation de données PhpMyAdmin

Modifiez la taille maximale de votre téléchargement php.

Savez-vous où se trouve votre fichier php.ini ?

Tout d'abord, essayez de placer ce fichier dans votre racine Web :

phpinfo.php

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

contenant :

<?php

phpinfo();

?>

Ensuite, accédez à http://www.yoursite.com/phpinfo.php

Recherchez "php.ini".

Pour télécharger des fichiers volumineux, vous avez besoin de max_execution_time, post_max_size, upload_max_filesize

Aussi, savez-vous où se trouve votre fichier error.log ? J'espère que cela vous donnera un indice sur ce qui ne va pas.

MODIFIER :

Voici la requête que j'utilise pour l'import de fichier :

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

Où $file_name est le nom de fichier temporaire de la variable globale php $_FILES, $table_name est la table déjà préparée pour l'importation et $nl est une variable pour les fins de ligne csv (par défaut les fins de ligne windows mais j'ai la possibilité de sélectionner la ligne linux fins).

L'autre chose est que la table ($table_name) dans mon script est préparée à l'avance en scannant d'abord le csv pour déterminer les types de colonnes. Après avoir déterminé les types de colonnes appropriés, il crée la table MySQL pour recevoir les données.

Je vous suggère d'essayer de créer d'abord la définition de la table MySQL, pour qu'elle corresponde au contenu du fichier (types de données, longueurs de caractères, etc.). Ensuite, essayez la requête ci-dessus et voyez à quelle vitesse elle s'exécute. Je ne sais pas à quel point la définition de la table MySQL est un facteur de vitesse.

De plus, je n'ai aucun index défini dans la table jusqu'à ce qu'APRÈS le chargement des données. Les index ralentissent le chargement des données.