J'ai grande table de base de données, environ 5 Go, maintenant je wan pour obtenirCurrentSnapshot de base de données en utilisant "Select * from MyTableName"
, utilise PDO
en PHP
pour interagir avec la base de données. Ainsi, la préparation d'une requête, puis l'exécuterComment actualiser l'instantané de MySQL Table et le stocker dans un fichier CSV (après l'avoir créé)?
// Execute the prepared query
$result->execute();
$resultCollection = $result->fetchAll(PDO::FETCH_ASSOC);
est pas un moyen efficace que beaucoup de mémoire est l'utilisateur pour le stockage dans les données de tableau associatif qui est à peu près, 5GB
.
Mon but final est de collecter les données renvoyées par Select
dans un fichier CSV et de placer le fichier CSV dans un emplacement FTP à partir duquel le client peut l'obtenir.
Autre option que je pensais faire:
SELECT * INTO OUTFILE "c:/mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM my_table;
Mais je ne suis pas sûr que cela fonctionnerait comme je l'ai Cron qui initie le processus complet et nous ne disposons pas d'un fichier csv, donc en gros pour cette approche,
- PHP Scripts devra créer un fichier CSV.
- Effectuer une requête de sélection dans la base de données.
- Stockez le résultat de la requête de sélection dans le fichier CSV.
Quel serait le meilleur ou le plus efficace pour effectuer ce genre de tâche?
Toutes les suggestions !!!
Avez-vous besoin d'utiliser PHP? Ne pouvez-vous pas vider une table en utilisant mysql depuis la ligne de commande ou un script shell? –
@Manos: Je dois utiliser PHP et je ne peux pas directement exporter une table en utilisant mysql depuis la ligne de commande ou un script shell. – Rachel