איך לפתוח קובץ SQL dump גדול ב-Mac (בלי קריסה)

אתם לוחצים פעמיים על ייצוא .sql של 20–50 ג'יגה-בייט והעורך שלכם מסתובב, קופא, ואז מת. אתם אפילו לא מצליחים לפתוח את הקובץ — שלא לדבר על הסרה של טבלה מנופחת אחת. הנה למה עורכים נחנקים, הפתרונות בשורת הפקודה, ודרך מהירה יותר.

dump של מסד נתונים בסביבת ייצור יכול בקלות להגיע לעשרות ג'יגה-בייט. ברגע שאתם מנסים לפתוח אותו בעורך טקסט רגיל, המאוורר של ה-Mac מתחיל לעבוד, כדור החוף מופיע, ובסופו של דבר האפליקציה נסגרת — לפעמים לוקחת איתה עבודה שלא נשמרה בחלונות אחרים.

למה עורכים נחנקים על dumps גדולים

VS Code, TextEdit, Sublime Text וחבריהם תוכננו לטעון את הקובץ כולו לזיכרון כדי שיוכלו לגלול, לחפש ולהדגיש באופן מיידי. זה בסדר לקובץ מקור של 2 מ"ב. עבור dump של 40 ג'יגה-בייט זה אומר שהעורך מנסה להקצות 40 ג'יגה-בייט (בתוספת תקורה למבני הנתונים הפנימיים שלו) ב-RAM.

ל-Mac שלכם יש 16 או 32 ג'יגה-בייט. הרבה לפני שהקובץ נטען במלואו, המערכת נגמרת מזיכרון פיזי, מתחילה להחליף לדיסק, ונטחנת עד עצירה. רוב העורכים גם מסרבים לחלוטין: VS Code מגביל קבצים לכ-50 מ"ב לעורך המלא ונופל למצב מצומצם, TextEdit פשוט נתקע, ו-Sublime מקצה עד שהוא קורס. גם אם תצליחו לפתוח את הקובץ, הדגשת התחביר והחיפוש יסרקו מחדש ג'יגה-בייטים בכל הקשה.

הבעיה המרכזית: הכלים האלה מניחים גישה אקראית לכל המסמך. dump לא צריך את זה — זו רשימה סדרתית של פקודות. אתם רק צריכים להזרים דרכו.

הדרך של שורת הפקודה

כלי ה-Unix ב-Mac שלכם כבר מזרימים, אז הם אף פעם לא טוענים את כל הקובץ. הם המפלט הראשון הקלאסי:

# הצצה לשורות הראשונות והאחרונות בלי לפתוח את כל הקובץ
head -n 50 dump.sql
tail -n 50 dump.sql

# פיצול ה-dump למקטעים של 100 מ"ב בשם part_aa, part_ab, ...
split -b 100m dump.sql part_

# משיכת הבלוק של טבלה אחת בין שני סמנים
sed -n '/CREATE TABLE `users`/,/UNLOCK TABLES/p' dump.sql > users.sql

זה עובד, אבל זה שביר ומייגע. split -b חותך בגבולות בייט גולמיים, אז הוא יחתוך ישר דרך אמצע פקודת INSERT — המקטעים שנוצרים אינם SQL תקין בפני עצמם. טריק הטווח של sed תלוי בסמנים המדויקים שכלי dump מסוים במקרה פולט; שנו את גרסת MySQL או עברו ל-PostgreSQL והתבנית כבר לא תתאים. ושום דבר מזה לא נותן לכם מבט על מה שבאמת בתוך הקובץ — אתם מנחשים איזו טבלה היא זו של 30 ג'יגה-בייט לפני שאתם בכלל יכולים לכוון אליה.

פתיחה וסינון עם DumpCleaner

DumpCleaner נבנה בדיוק לגודל קובץ כזה. הוא מזרים את ה-dump כמו שורת הפקודה עושה, אבל הוא מבין מבנה SQL, אז אתם מקבלים רשימת טבלאות אמיתית ופלט בטוח ומודע-לפקודות:

  1. גררו את הקובץ פנימה. DumpCleaner פותח את ה-dump על ידי הזרמתו במקטעים של כ-1 מ"ב — קובץ של 50 ג'יגה-בייט נפתח עם בערך 50 מ"ב של RAM, אז שום דבר לא קופא.
  2. ראו כל טבלה. הוא סורק את ה-dump ומציג כל טבלה עם הגודל שלה, כך שאתם מזהים מיד איזו מנפחת את הקובץ.
  3. בטלו את הסימון של מה שאתם לא צריכים. בטלו את הסימון של טבלאות הלוג, ה-session או האנליטיקה הענקיות. DumpCleaner שומר פקודות שלמות בשלמותן — בלי INSERTs חתוכים בחצי.
  4. ייצאו. כתבו קובץ .sql חדש וקטן יותר שסוף סוף נפתח ומתייבא בנוחות. הקובץ המקורי שלכם לעולם לא משתנה.

מכיוון שהוא מעבד dumps של 50 ג'יגה-בייט וגדולים יותר עם זיכרון קבוע, אתם לא צריכים לחשוב על ה-RAM של ה-Mac שלכם בכלל. ומכיוון שהוא קורא את המקור וכותב פלט נפרד, ה-dump שהתחלתם איתו נשאר בדיוק כפי שהיה.

פתחו dumps שהעורך שלכם לא יכול

DumpCleaner מזרים SQL dumps בכל גודל עם זיכרון קבוע — בלי קריסה, בלי swap, בלי המתנה. גררו קובץ של 50 ג'יגה-בייט, הפילו את הטבלאות שאתם לא צריכים, ייצאו קטן יותר. אפליקציית macOS & iPadOS מקורית, רכישה חד-פעמית.

הורדה מ-App Store

שאלות נפוצות

כמה גדול SQL dump ש-DumpCleaner יכול לטפל בו?

אין מגבלה קבועה. הוא מעבד את הקובץ כזרם במקטעים קטנים, אז dumps של 50 ג'יגה-בייט וגדולים יותר עובדים כמו קטנים — הגודל מוגבל על ידי הדיסק שלכם, לא ה-RAM.

האם DumpCleaner טוען את כל הקובץ ל-RAM?

לא. בניגוד לעורך טקסט, הוא קורא את ה-dump במקטעים קטנים ושומר על זיכרון קבוע בערך בסביבות 50 מ"ב, בין אם הקובץ הוא 200 מ"ב או 50 ג'יגה-בייט.

האם אני יכול לפצל dump לפי טבלה?

כן. במקום ש-split יחתוך בעיוורון בגבולות בייט, DumpCleaner מבין את מבנה הטבלה. בטלו את הסימון של הטבלאות שאתם לא רוצים וייצאו קובץ נקי רק עם אלה שאתם שומרים.

האם DumpCleaner משנה את הקובץ המקורי שלי?

לא. ה-dump המקורי רק נקרא — DumpCleaner תמיד כותב קובץ חדש, כך שהמקור שלכם נשאר ללא נגיעה.

הפסיקו להילחם בעורך שלכם

גררו את ה-dump הענק, הפילו את הטבלאות שאתם לא צריכים, ייצאו קובץ שבאמת נפתח. DumpCleaner מטפל בכל גודל עם זיכרון קבוע.

הורדה מ-App Store