sql >> Database teknologi >  >> RDS >> Mysql

MySQL Large Table Import

En del af problemet med at have en så enorm eksport skyldes (formentlig) afskedigelserne i den. Der er sandsynligvis tusindvis af "INSERT"-kommandoer, som, når de indlæses på én gang, optager en stor del af hukommelsen.

Hvis du har nøjagtig de samme data som en CSV, ville jeg lave et lille PHP-script for at gå linje for linje gennem CSV-filen og oprette en INSERT sql-forespørgsel dynamisk og derefter udføre den. Dette skulle holde hukommelsesfodaftrykket meget lavt, da du kan blive ved med at erstatte værdierne af dine midlertidige variable (svarende til felterne) efter hver indsættelse.

Jeg har linket til den funktion, som jeg ville prøve at bruge. Det hedder fgetcsv. Det link har også nogle eksempler på scripts, som jeg tror kan være nyttige for dig, som er oprettet af andre brugere.

Held og lykke!

fgetcsv PHP-funktion til brug for linje-for-linje-læsning



  1. Fejl:vælg kommando nægtet bruger '<brugerid>'@'<ip-adresse>' for tabellen '<tabelnavn>'

  2. sql ::SQLString adfærd

  3. hvordan kan jeg vide, hvor mange rækker der vil opdatere sql påvirket, før jeg udfører det

  4. EXECUTE-tilladelsen blev nægtet på objektet 'xxxxxxx', databasen 'zzzzzzz', skemaet 'dbo'