אתה נמצא כאן מדריכים  >>  שמירת מידע בינארי ב-MySQL  >>  שמירת קבצים

שמירת קבצים

* המדריך נכתב באדיבותו של ירון גונן.

מהם קבצים במערכת הפעלה?

כולנו יודעים מהם קבצים. הם שוכנים להם על הכונן הקשיח של המחשב או השרת ונתונים לפקודתנו. אנו יכולים למחוק אותם, להעתיק אותם, להריץ אותם (אם הם ברי הרצה), לשמוע אותם (אם הם מכילים מוזיקה), לערוך אותם (אם הם מסמכים), לראות אותם (אם הם תמונות) או בקיצור לעשות בהם כרצוננו (אם יש לנו הרשאה לכך).

אבל מה זה בדיוק קובץ? קובץ הוא פשוט רצף של מידע בינארי, כלומר רצף של 0-ים ו 1-ים ששוכן בתוך הכונן הקשיח שלנו. כל פעם שאנו מבצעים פעולה על הקובץ: מוחקים, עורכים או מעתיקים, אנו מבקשים רשות ממערכת ההפעלה והיא עושה את כל העבודה ה"קשה" בשבילנו. למשל אם אנו מעתיקים קובץ מערכת ההפעלה מפנה לו מקום על הכונן הקשיח, קוראת את הקובץ ממקומו וכותבת אותו במקומו החדש. היא גם דואגת לעדכן את רשימת הקבצים כך שתכיל את הקובץ המועתק.

נשמע טוב, לא? מערכת ההפעלה מטפלת בכל ואני לא צריך לדאוג לכלום. אבל לא תמיד אנו רוצים שמערכת ההפעלה תטפל בקבצים, אלא אנו רוצים לטפל בהם בעצמנו ולשמור אותם לא כקבצים במערכת ההפעלה אלא כמידע בינארי בתוך בסיס הנתונים שלנו. למה סתם להעמיס על עצמנו עבודה מיותרת ואיך עושים את זה - בסעיפים הבאים.

מדוע לשמור קבצים בבסיס נתונים?

הדעות מה עדיף: לשמור את הקובץ על הדיסק או לשמור אותו בבסיס הנתונים, חלוקות, וכמו כמעט בכל דבר בחיים התשובה תלויה בהקשר. שמירת הקובץ בתוך ספרייה היא פשוטה יותר ולכן עבור מערכות קטנות שאין בהן הרבה קבצים זה עדיף. אבל במערכות גדולות בהן כמות הקבצים גדלה בג'יגות בכל חודש הטיפול בקבצים הרבים מתחיל להיות מטרד, בייחוד כאשר צריך להוסיף עוד ועוד כוננים קשיחים ולמפות אותם במערכת ההפעלה שלך.

כאשר מדובר בבסיס נתונים, בסיס הנתונים עצמו מטפל בקבצים ואם צריך להוסיף כונן נוסף - אין בעיה. רק מגדירים storage נוסף ובסיס הנתונים מטפל בכל השאר. בנוסף לכך שמירת הקבצים בתוך בסיס הנתונים מנתקת את התלות במערכת הפעלה מסויימת לניהול הקבצים והמערכת שלך יותר כללית. גם יותר קל למנהל המערכת לשלוט על ההרשאות לקבצים מסוימים שנמצאים במערכת.

הבט נוסף של שמירת קבצים ותמונות בבסיס הנתונים היא מניעת לינק ישיר מאתרים אחרים לתמונות וקבצים שנמצאים על האתר שלכם.


תגובות בנושא

קריסה? 08-12-02 03:00
 יקיר סיטבון
#336

אבל מה עושים אם למשל קורסת לי הבסיס נתונים? כמו שקרה לי השבוע?
יקיר.

תגובה: קריסה? 08-12-02 04:00
 אלי חן (מנהל)
#339

תמיד יכול לקרות שבסיס נתונים קורס, וזה יכול לקרות גם לטובים ביותר, ביניהם גם ל-MySQL, אך MySQL אינה מעלימה עין מן הבעיה ומציעה פיתרונות של גיבויים, בדיקות ותיקונים לטבלאות ובסיסי נתונים.
בדוק את השאילתות הבאות של MySQL:
BACKUP, RESTORE, CHECK, REPAIR
אם סוג הטבלאות שלך הם MyISAM (בדר"כ בגירסה 3), אז תוכל להשתמש גם בקובץ ההרצה myisamchk המופיע בספריה bin של MySQL.

לא אחי... 08-12-02 06:01
 יקיר סיטבון
#352

אני לא מתכוון על זה.
אני אומר, שמתי שאני יעלה קבצים על המסד נתונים, אז יכול להיות שהוא יקרוס לגמרי, ושום דבר לא ישאר... אז אני יצטרך לעלות הכל מחדש?

יכול להיות 08-12-02 07:00
 אלי חן (מנהל)
#356

יכול להיות שגם מערכת ההפעלה שלך תקרוס ואולי תצטרך לפרמט וקבצים יימחקו, אז?
בשביל זה בדיוק יש את הכלים של הגנה בזמן קריסה: גיבוי, שיחזור, תיקון ובדיקה.
בכל מקרה, MySQL עושה מאמצים לא לפשל ומצליחה בזה בענק!!! ואם יש לך ספק... MySQL יכולה להכיל בתוכה גם מידע בינארי של קבצים, וראה את הדוגמא במדריך הזה כעדות חיה לכך.
תקלות תמיד עלולות לקרות.. תדע איך להתמודד איתם.. שום דבר לא מושלם :)

תגובה: יכול להיות 08-12-02 07:00
 יקיר סיטבון
#359

אם אני בא לניהול של PHPMYADMIN ופתאום אני רואה שאין לי שם שום טבלה, אז מה אני צריך לעשות בנידון?

2 טבלאות 01-11-02 21:01
 OICW
#580

היי
בשביל מה צריך שתי טבלאות?
אחת לפרטי הקובץ והשנייה למידע הבינארי?
אפשר לעשות את זה בטבלה אחת אז למה בשתיים?

תודה.

2 טבלאות 01-11-02 23:00
 אלי חן (מנהל)
#584

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


לדף הקודםהורדה -הקודם
לתחילת הדףלתחילת הדף
הבא- בסיס הנתוניםלדף הבא