Miten avaat suuren SQL-dumpin Macilla (ilman kaatumista)

Kaksoisklikkaat 20–50 Gt:n .sql-vientiä ja editorisi jää pyörimään, jäätyy ja kuolee. Et saa tiedostoa edes auki — puhumattakaan yhden paisuneen taulun poistamisesta. Tässä miksi editorit tukehtuvat, komentorivin kiertotiet ja nopeampi tapa.

Tuotantotietokannan dumppi voi helposti kasvaa kymmeniin gigatavuihin. Sillä hetkellä kun yrität avata sen tavallisessa tekstieditorissa, Macisi tuuletin alkaa hurista, rantapallo ilmestyy, ja lopulta sovellus lopettaa — vieden joskus tallentamattoman työn muissa ikkunoissa mukanaan.

Miksi editorit tukehtuvat suuriin dumppeihin

VS Code, TextEdit, Sublime Text ja kumppanit on suunniteltu lataamaan koko tiedosto muistiin, jotta ne voivat vierittää, hakea ja korostaa välittömästi. Se on hyvä 2 Mt:n lähdetiedostolle. 40 Gt:n dumpille se tarkoittaa, että editori yrittää varata 40 Gt (plus lisäkulut sisäisille tietorakenteilleen) muistista.

Macissasi on 16 tai 32 Gt. Kauan ennen kuin tiedosto on täysin ladattu, järjestelmästä loppuu fyysinen muisti, se alkaa käyttää levyn sivutusta ja hidastuu tahmeaksi. Useimmat editorit myös kieltäytyvät suoralta kädeltä: VS Code rajoittaa tiedostot noin 50 Mt:iin täydelle editorille ja siirtyy riisuttuun tilaan, TextEdit yksinkertaisesti jumittuu, ja Sublime varaa muistia kunnes kaatuu. Vaikka saisit tiedoston auki, syntaksin korostus ja haku käyvät gigatavut läpi uudelleen jokaisella näppäinpainalluksella.

Ydinongelma: nämä työkalut olettavat satunnaisen pääsyn koko dokumenttiin. Dumppi ei sitä tarvitse — se on peräkkäinen lista lauseita. Sinun tarvitsee vain striimata sen läpi.

Komentorivin tapa

Macissasi olevat Unix-työkalut striimaavat jo, joten ne eivät koskaan lataa koko tiedostoa. Ne ovat klassinen ensimmäinen apu:

# Kurkista ensimmäisiin ja viimeisiin riveihin avaamatta koko tiedostoa
head -n 50 dump.sql
tail -n 50 dump.sql

# Jaa dumppi 100 Mt:n paloihin nimeltä part_aa, part_ab, ...
split -b 100m dump.sql part_

# Poimi yhden taulun lohko kahden merkin välistä
sed -n '/CREATE TABLE `users`/,/UNLOCK TABLES/p' dump.sql > users.sql

Tämä toimii, mutta se on hauras ja työläs. split -b leikkaa raakojen tavurajojen kohdalta, joten se viiltää suoraan INSERT-lauseen keskeltä — syntyneet palat eivät ole yksinään validia SQL:ää. sed-alueen kikka riippuu tarkoista merkeistä, joita tietty dumppaustyökalu sattuu tuottamaan; vaihda MySQL-versio tai siirry PostgreSQL:ään ja kuvio ei enää täsmää. Eikä mikään näistä anna sinulle näkymää siihen, mitä tiedostossa oikeasti on — arvailet, mikä taulu on se 30 Gt:n, ennen kuin voit edes kohdistaa siihen.

Avaa ja suodata se DumpCleanerilla

DumpCleaner rakennettiin juuri tähän tiedostokokoon. Se striimaa dumpin kuten komentorivi tekee, mutta se ymmärtää SQL-rakenteen, joten saat todellisen taululistan ja turvallisen, lausetietoisen tulosteen:

  1. Vedä tiedosto sisään. DumpCleaner avaa dumpin striimaten sitä ~1 Mt:n paloissa — 50 Gt:n tiedosto avautuu noin 50 Mt:n muistilla, joten mikään ei jäädy.
  2. Näe jokainen taulu. Se skannaa dumpin ja listaa jokaisen taulun kokoineen, joten huomaat heti kumpi paisuttaa tiedostoa.
  3. Poista valinta siitä, mitä et tarvitse. Poista rasti jättimäisiltä loki-, istunto- tai analytiikkatauluilta. DumpCleaner pitää kokonaiset lauseet ehjinä — ei puoliksi leikattuja INSERTejä.
  4. Vie. Kirjoita uusi, pienempi .sql-tiedosto, joka viimein avautuu ja tuodaan mukavasti. Alkuperäistä tiedostoa ei koskaan muokata.

Koska se käsittelee 50 Gt:n ja suurempia dumppeja vakiomuistilla, sinun ei tarvitse ajatella Macisi muistia lainkaan. Ja koska se lukee lähteen ja kirjoittaa erillisen tulosteen, aloittamasi dumppi pysyy täsmälleen sellaisena kuin se oli.

Avaa dumpit, joita editorisi ei pysty

DumpCleaner striimaa minkä tahansa kokoiset SQL-dumpit vakiomuistilla — ei kaatumista, ei sivutusta, ei odottelua. Vedä sisään 50 Gt:n tiedosto, pudota taulut joita et tarvitse, vie pienempi. Natiivi macOS- & iPadOS-sovellus, kertaosto.

Lataa App Storesta

Usein kysytyt kysymykset

Kuinka suuren SQL-dumpin DumpCleaner pystyy käsittelemään?

Kiinteää rajaa ei ole. Se käsittelee tiedoston striiminä pienissä paloissa, joten 50 Gt:n ja suuremmat dumpit toimivat kuten pienetkin — koko on rajattu levylläsi, ei muistillasi.

Lataako DumpCleaner koko tiedoston muistiin?

Ei. Toisin kuin tekstieditori, se lukee dumpin pienissä paloissa ja pitää muistin suunnilleen vakiona noin 50 Mt:ssä, oli tiedosto 200 Mt tai 50 Gt.

Voinko jakaa dumpin taulun mukaan?

Kyllä. Sen sijaan että split leikkaisi sokeasti tavurajoilta, DumpCleaner ymmärtää taulurakenteen. Poista valinta tauluilta joita et halua ja vie puhdas tiedosto vain säilyttämilläsi tauluilla.

Muokkaako DumpCleaner alkuperäistä tiedostoani?

Ei. Lähdedumppi vain luetaan — DumpCleaner kirjoittaa aina uuden tiedoston, joten alkuperäisesi pysyy koskemattomana.

Lopeta taistelu editorisi kanssa

Vedä sisään valtava dumppi, pudota taulut joita et tarvitse, vie tiedosto joka oikeasti avautuu. DumpCleaner käsittelee minkä tahansa koon vakiomuistilla.

Lataa App Storesta