Dump produkčnej databázy môže ľahko dosiahnuť desiatky gigabajtov. Vo chvíli, keď ho skúsite otvoriť v bežnom textovom editore, sa roztočia ventilátory vášho Macu, objaví sa točiaci sa kruh a nakoniec aplikácia spadne — niekedy si so sebou vezme aj neuloženú prácu v iných oknách.
Prečo editory zlyhávajú na veľkých dumpoch
VS Code, TextEdit, Sublime Text a spol. sú navrhnuté tak, aby načítali celý súbor do pamäte, aby mohli okamžite rolovať, vyhľadávať a zvýrazňovať. To je v poriadku pri 2 MB zdrojovom súbore. Pri 40 GB dumpe to znamená, že sa editor pokúsi alokovať 40 GB (plus réžia jeho interných dátových štruktúr) v RAM.
Váš Mac má 16 alebo 32 GB. Dávno predtým, ako sa súbor úplne načíta, systému dôjde fyzická pamäť, začne odkladať na disk a zamrzne. Väčšina editorov to tiež priamo odmietne: VS Code obmedzuje súbory na približne 50 MB pre plný editor a prepne sa do zjednodušeného režimu, TextEdit jednoducho zamrzne a Sublime alokuje, kým nespadne. Aj keď súbor otvoríte, zvýrazňovanie syntaxe a vyhľadávanie budú pri každom stlačení klávesu znovu prehľadávať gigabajty.
Jadro problému: tieto nástroje predpokladajú náhodný prístup k celému dokumentu. Dump to nepotrebuje — je to sekvenčný zoznam príkazov. Stačí ho len prúdovo prejsť.
Cesta cez príkazový riadok
Unixové nástroje na vašom Macu už prúdujú, takže nikdy nenačítajú celý súbor. Sú klasickou prvou voľbou:
# Nazrite na prvé a posledné riadky bez otvorenia celého súboru head -n 50 dump.sql tail -n 50 dump.sql # Rozdeľte dump na 100 MB kúsky s názvami part_aa, part_ab, ... split -b 100m dump.sql part_ # Vytiahnite blok jednej tabuľky medzi dvoma značkami sed -n '/CREATE TABLE `users`/,/UNLOCK TABLES/p' dump.sql > users.sql
Toto funguje, ale je to krehké a zdĺhavé. split -b reže na hraniciach surových bajtov, takže rozseká priamo cez stred príkazu INSERT — výsledné kúsky samy o sebe nie sú platné SQL. Trik s rozsahom sed závisí od presných značiek, ktoré náhodou vydáva konkrétny dump nástroj; zmeňte verziu MySQL alebo prejdite na PostgreSQL a vzor sa už nezhoduje. A žiadny z nich vám nedá pohľad na to, čo je vlastne v súbore — hádate, ktorá tabuľka je tá 30 GB, ešte predtým, než ju vôbec dokážete zacieliť.
Otvorte a filtrujte ho s DumpCleaner
DumpCleaner bol vytvorený presne pre túto veľkosť súboru. Prúduje dump tak ako príkazový riadok, ale rozumie štruktúre SQL, takže dostanete skutočný zoznam tabuliek a bezpečný výstup zohľadňujúci príkazy:
- Pretiahnite súbor dovnútra. DumpCleaner otvorí dump prúdovým načítaním v ~1 MB kúskoch — 50 GB súbor sa otvorí s približne 50 MB RAM, takže nič nezamrzne.
- Zobrazte každú tabuľku. Preskenuje dump a vypíše každú tabuľku s jej veľkosťou, takže okamžite spozorujete, ktorá súbor nafukuje.
- Odznačte, čo nepotrebujete. Odškrtnite obrovské log, session alebo analytické tabuľky. DumpCleaner udržuje celé príkazy neporušené — žiadne polovične odseknuté INSERTy.
- Exportujte. Zapíšte nový, menší súbor
.sql, ktorý sa konečne pohodlne otvorí a naimportuje. Váš pôvodný súbor sa nikdy neupraví.
Keďže spracúva 50 GB a väčšie dumpy s konštantnou pamäťou, vôbec nemusíte myslieť na RAM vášho Macu. A keďže číta zdroj a zapisuje samostatný výstup, dump, s ktorým ste začali, zostane presne taký, aký bol.
Otvorte dumpy, ktoré váš editor nezvládne
DumpCleaner prúduje SQL dumpy akejkoľvek veľkosti s konštantnou pamäťou — žiadny pád, žiadne odkladanie, žiadne čakanie. Pretiahnite 50 GB súbor, zahoďte tabuľky, ktoré nepotrebujete, exportujte menší. Natívna aplikácia pre macOS a iPadOS, jednorazová kúpa.
Stiahnuť v App StoreČasto kladené otázky
Aký veľký SQL dump dokáže DumpCleaner spracovať?
Neexistuje pevný limit. Súbor spracúva ako prúd v malých kúskoch, takže 50 GB a väčšie dumpy fungujú rovnako ako malé — veľkosť je obmedzená vaším diskom, nie vašou RAM.
Načíta DumpCleaner celý súbor do RAM?
Nie. Na rozdiel od textového editora číta dump v malých kúskoch a udržuje pamäť približne konštantnú okolo 50 MB, či už má súbor 200 MB alebo 50 GB.
Môžem rozdeliť dump podľa tabuliek?
Áno. Namiesto toho, aby split rezal naslepo na hraniciach bajtov, DumpCleaner rozumie štruktúre tabuliek. Odznačte tabuľky, ktoré nechcete, a exportujte čistý súbor iba s tými, ktoré si ponecháte.
Upravuje DumpCleaner môj pôvodný súbor?
Nie. Zdrojový dump sa iba číta — DumpCleaner vždy zapisuje nový súbor, takže váš originál zostane nedotknutý.
Prestaňte bojovať so svojím editorom
Pretiahnite obrovský dump, zahoďte tabuľky, ktoré nepotrebujete, exportujte súbor, ktorý sa naozaj otvorí. DumpCleaner zvládne akúkoľvek veľkosť s konštantnou pamäťou.
Stiahnuť v App Store