Kā atvērt lielu SQL izgāztuves failu Mac datorā (bez avārijas)

Tu veic dubultklikšķi uz 20–50 GB .sql eksporta, un tavs redaktors griežas, sastingst un tad nomirst. Tu pat nevari atvērt failu — nemaz nerunājot par vienas uzpūstas tabulas noņemšanu. Lūk, kāpēc redaktori aizrijas, komandrindas apvedceļi un ātrāks veids.

Produkcijas datubāzes izgāztuve viegli var sasniegt desmitiem gigabaitu. Brīdī, kad mēģini to atvērt parastā teksta redaktorā, tava Mac ventilators sāk griezties, parādās krāsainā riņķīša kursors, un galu galā lietotne aizveras — dažreiz aizvedot līdzi nesaglabātu darbu citos logos.

Kāpēc redaktori aizrijas ar lielām izgāztuvēm

VS Code, TextEdit, Sublime Text un līdzīgi ir veidoti, lai ielādētu visu failu atmiņā, tā ka tie var uzreiz ritināt, meklēt un izcelt. Tas ir labi 2 MB pirmkoda failam. 40 GB izgāztuvei tas nozīmē, ka redaktors mēģina piešķirt 40 GB (plus papildu izmaksas savām iekšējām datu struktūrām) RAM.

Tavam Mac ir 16 vai 32 GB. Ilgi pirms fails ir pilnībā ielādēts, sistēmai beidzas fiziskā atmiņa, tā sāk pārrakstīšanu diskā un apstājas. Vairums redaktoru arī atsakās tieši: VS Code ierobežo failus līdz aptuveni 50 MB pilnajam redaktoram un pārslēdzas uz atslogotu režīmu, TextEdit vienkārši iestrēgst, un Sublime piešķir atmiņu, līdz avarē. Pat ja tev izdodas fails atvērt, sintakses izcelšana un meklēšana atkārtoti pārskenēs gigabaitus ar katru taustiņa nospiešanu.

Galvenā problēma: šie rīki pieņem brīvpiekļuvi visam dokumentam. Izgāztuvei tas nav vajadzīgs — tā ir secīga priekšrakstu virkne. Tev tā tikai jāstraumē cauri.

Komandrindas veids

Unix rīki tavā Mac jau straumē, tāpēc tie nekad neielādē visu failu. Tie ir klasiskais pirmais glābiņš:

# Apskati pirmās un pēdējās rindas, neatverot visu failu
head -n 50 dump.sql
tail -n 50 dump.sql

# Sadali izgāztuvi 100 MB gabalos ar nosaukumiem part_aa, part_ab, ...
split -b 100m dump.sql part_

# Izvelc vienas tabulas bloku starp diviem marķieriem
sed -n '/CREATE TABLE `users`/,/UNLOCK TABLES/p' dump.sql > users.sql

Tas darbojas, taču ir trausli un apgrūtinoši. split -b griež uz neapstrādātu baitu robežām, tāpēc tas sagriezīs tieši cauri INSERT priekšraksta vidum — iegūtie gabali paši par sevi nav derīgs SQL. sed diapazona triks ir atkarīgs no precīziem marķieriem, kurus izdod konkrēts izgāztuves rīks; nomaini MySQL versiju vai pārslēdzies uz PostgreSQL, un šablons vairs nesakrīt. Un neviens no tā nesniedz priekšstatu par to, kas patiešām ir failā — tev jāmin, kura tabula ir tā 30 GB, pirms vari to vispār mērķēt.

Atver un filtrē to ar DumpCleaner

DumpCleaner ir veidots tieši šim faila izmēram. Tas straumē izgāztuvi tāpat kā komandrinda, taču tas saprot SQL struktūru, tāpēc tu iegūsti īstu tabulu sarakstu un drošu, priekšrakstus apzinošu izvadi:

  1. Ievelc failu iekšā. DumpCleaner atver izgāztuvi, straumējot to ~1 MB gabalos — 50 GB fails atveras ar aptuveni 50 MB RAM, tāpēc nekas nesastingst.
  2. Redzi katru tabulu. Tas skenē izgāztuvi un uzskaita katru tabulu ar tās izmēru, tāpēc tu uzreiz pamani, kura uzpūš failu.
  3. Noņem atzīmi tam, kas nav vajadzīgs. Noņem atzīmi milzīgajām žurnālu, sesiju vai analītikas tabulām. DumpCleaner saglabā veselus priekšrakstus neskartus — bez pa pusei nogrieztiem INSERT.
  4. Eksportē. Uzraksti jaunu, mazāku .sql failu, kas beidzot ērti atveras un importējas. Tavs oriģinālais fails nekad netiek mainīts.

Tā kā tas apstrādā 50 GB un lielākas izgāztuves ar nemainīgu atmiņu, tev vispār nav jādomā par sava Mac RAM. Un tā kā tas nolasa avotu un raksta atsevišķu izvadi, izgāztuve, ar kuru tu sāki, paliek tieši tāda, kāda tā bija.

Atver izgāztuves, ko tavs redaktors nevar

DumpCleaner straumē jebkura izmēra SQL izgāztuves ar nemainīgu atmiņu — bez avārijas, bez pārrakstīšanas, bez gaidīšanas. Ievelc 50 GB failu, izmet tabulas, kas nav vajadzīgas, eksportē mazāku. Vietējā macOS un iPadOS lietotne, vienreizējs pirkums.

Lejupielādēt App Store

Biežāk uzdotie jautājumi

Cik lielu SQL izgāztuvi DumpCleaner var apstrādāt?

Nav fiksēta ierobežojuma. Tas apstrādā failu kā straumi nelielos gabalos, tāpēc 50 GB un lielākas izgāztuves darbojas tāpat kā mazas — izmēru ierobežo tavs disks, nevis RAM.

Vai DumpCleaner ielādē visu failu RAM?

Nē. Atšķirībā no teksta redaktora tas nolasa izgāztuvi nelielos gabalos un uztur atmiņu aptuveni nemainīgu ap 50 MB, neatkarīgi no tā, vai fails ir 200 MB vai 50 GB.

Vai es varu sadalīt izgāztuvi pa tabulām?

Jā. Tā vietā, lai split aklā veidā grieztu uz baitu robežām, DumpCleaner saprot tabulu struktūru. Noņem atzīmi tabulām, kuras nevēlies, un eksportē tīru failu tikai ar tām, kuras patur.

Vai DumpCleaner maina manu oriģinālo failu?

Nē. Avota izgāztuve tiek tikai nolasīta — DumpCleaner vienmēr raksta jaunu failu, tāpēc tavs oriģināls paliek neskarts.

Beidz cīnīties ar savu redaktoru

Ievelc milzīgo izgāztuvi, izmet tabulas, kas nav vajadzīgas, eksportē failu, kas patiešām atveras. DumpCleaner apstrādā jebkuru izmēru ar nemainīgu atmiņu.

Lejupielādēt App Store