Egy éles adatbázis dumpja könnyen elérheti a több tíz gigabájtot. Abban a pillanatban, ahogy megpróbálod megnyitni egy szokványos szövegszerkesztőben, felpörög a Mac ventilátora, megjelenik a pörgő kerék, és végül az alkalmazás kilép – néha magával rántva a többi ablakban lévő mentetlen munkádat is.
Miért akadnak be a szerkesztők a nagy dumpokon
A VS Code, a TextEdit, a Sublime Text és társaik úgy vannak megtervezve, hogy a teljes fájlt a memóriába töltsék, így azonnal tudnak görgetni, keresni és kiemelni. Egy 2 MB-os forrásfájlnál ez rendben is van. Egy 40 GB-os dumpnál viszont azt jelenti, hogy a szerkesztő megpróbál 40 GB-ot (plusz a belső adatszerkezetei többletét) lefoglalni a RAM-ban.
A Macedben 16 vagy 32 GB van. Jóval azelőtt, hogy a fájl teljesen betöltődne, a rendszerből elfogy a fizikai memória, elkezd lemezre lapozni, és leáll. A legtöbb szerkesztő egyenesen meg is tagadja: a VS Code a teljes szerkesztő esetén körülbelül 50 MB-nál korlátozza a fájlokat, és lecsupaszított módba vált, a TextEdit egyszerűen lefagy, a Sublime pedig addig foglal memóriát, amíg össze nem omlik. Még ha meg is nyitod a fájlt, a szintaxiskiemelés és a keresés minden billentyűleütésnél újraolvas gigabájtokat.
Az alapprobléma: ezek az eszközök véletlen hozzáférést feltételeznek a teljes dokumentumhoz. Egy dumpnak erre nincs szüksége – ez utasítások szekvenciális listája. Csak végig kell streamelned rajta.
A parancssoros út
A Macen lévő Unix-eszközök már eleve streamelnek, így soha nem töltik be a teljes fájlt. Ezek a klasszikus első megoldások:
# Kukkants be az első és utolsó sorokba a teljes fájl megnyitása nélkül head -n 50 dump.sql tail -n 50 dump.sql # Oszd fel a dumpot 100 MB-os darabokra part_aa, part_ab, ... néven split -b 100m dump.sql part_ # Húzd ki egy tábla blokkját két jelölő között sed -n '/CREATE TABLE `users`/,/UNLOCK TABLES/p' dump.sql > users.sql
Ez működik, de törékeny és fárasztó. A split -b nyers bájthatárokon vág, így simán belevág egy INSERT utasítás közepébe – a keletkező darabok önmagukban nem érvényes SQL-ek. A sed tartományos trükk azon a pontos jelölőn múlik, amit egy adott dump-eszköz éppen kiír; változtass MySQL-verziót vagy válts PostgreSQL-re, és a minta már nem illeszkedik. És egyik sem ad rálátást arra, hogy mi van valójában a fájlban – találgatsz, melyik a 30 GB-os tábla, mielőtt egyáltalán meg tudnád célozni.
Nyisd meg és szűrd a DumpCleanerrel
A DumpCleaner pontosan erre a fájlméretre készült. Úgy streameli a dumpot, ahogy a parancssor, de érti az SQL szerkezetét, így valódi táblalistát és biztonságos, utasítás-tudatos kimenetet kapsz:
- Húzd be a fájlt. A DumpCleaner ~1 MB-os darabokban streamelve nyitja meg a dumpot – egy 50 GB-os fájl körülbelül 50 MB RAM mellett nyílik meg, így semmi nem fagy le.
- Lásd az összes táblát. Beolvassa a dumpot, és felsorolja az egyes táblákat a méretükkel együtt, így azonnal kiszúrod, melyik duzzasztja fel a fájlt.
- Vedd ki a jelölést arról, amire nincs szükséged. Vedd ki a pipát a hatalmas log-, session- vagy analitikai tábláknál. A DumpCleaner egészben tartja az utasításokat – nincsenek félbevágott INSERT-ek.
- Exportálj. Írj ki egy új, kisebb
.sqlfájlt, ami végre kényelmesen megnyílik és importálódik. Az eredeti fájlod soha nem módosul.
Mivel az 50 GB-os és nagyobb dumpokat is állandó memóriával dolgozza fel, egyáltalán nem kell a Maced RAM-jával foglalkoznod. És mivel a forrást olvassa, és külön kimenetet ír, a dump, amellyel kezdted, pontosan olyan marad, amilyen volt.
Nyiss meg olyan dumpokat, amiket a szerkesztőd nem bír
A DumpCleaner bármekkora SQL dumpot streamel állandó memóriával – nincs összeomlás, nincs lapozás, nincs várakozás. Húzz be egy 50 GB-os fájlt, dobd el a felesleges táblákat, exportálj egy kisebbet. Natív macOS & iPadOS alkalmazás, egyszeri vásárlás.
Letöltés az App Store-bólGyakran ismételt kérdések
Mekkora SQL dumpot tud kezelni a DumpCleaner?
Nincs fix korlát. A fájlt kis darabokban, streamként dolgozza fel, így az 50 GB-os és nagyobb dumpok is úgy működnek, mint a kicsik – a méretet a lemezed korlátozza, nem a RAM-od.
A DumpCleaner a teljes fájlt a RAM-ba tölti?
Nem. Egy szövegszerkesztővel ellentétben kis darabokban olvassa a dumpot, és a memóriahasználatot nagyjából állandó, körülbelül 50 MB-on tartja, akár 200 MB, akár 50 GB a fájl.
Feloszthatom a dumpot tábla szerint?
Igen. Ahelyett, hogy a split vakon vágna bájthatárokon, a DumpCleaner érti a táblaszerkezetet. Vedd ki a jelölést a nem kívánt tábláknál, és exportálj egy tiszta fájlt csak a megtartottakkal.
Módosítja a DumpCleaner az eredeti fájlomat?
Nem. A forrás-dumpot csak olvassa – a DumpCleaner mindig új fájlt ír, így az eredetid érintetlen marad.
Ne harcolj tovább a szerkesztőddel
Húzd be a hatalmas dumpot, dobd el a felesleges táblákat, exportálj egy fájlt, ami tényleg megnyílik. A DumpCleaner bármekkora méretet kezel állandó memóriával.
Letöltés az App Store-ból