אנשי DBA

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

הבעיה בשוק שלנו, היא שמרבית האנשים המדווחים כי הם מומחים למשהו, במקרה הזה – DBA, אינם באמת מומחים, וחלקם הגדול גם לא מבינים מעבר לאיזה קורס וקריאה של התעוד הרשמי.
רובם אפילו לא עשו ניסויים על התמודדויות של בעיות כדוגמת מה קורה כאשר באמצע כתיבה התקשורת נופלת, או יש בעיה בדיסק, או איך להתמודד עם כך ש slave לא מצליח לשמור את הנתונים, שלא לדבר על כך שיש journal שנכתב והוא מה שנקרא, והרשימה עוד ארוכה.

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

אבל אותם אנשים המתיימרים להיות אנשי DBA, הם חסרי ניסיון מעבר למה שמתועד, הם לא באמת יודעים דברים מניסיון, או ניואנסים קטנים מאוד שרק מי ש"חי" את המקצוע מקבל אותם.

למשל בכל מסדי הנתונים שאני מכיר, יש בעיה עם Foreign keys. הם נשמעים טוב, אבל מוסיפים סיבוכיות בכך שהם בעצם מתורגמים לעוד פעולת select. את בעיית הביצועים הזו גיליתי לבד, את הסיבה לכך, ובכן איש DBA הסביר לי. אבל הוא באמת מבין המון דברים. הפתרון לכך פשוט, אבל זה לא נושא הפוסט🙂

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

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

דעותי עדיין חלוקות, ואשמח לשמוע מה לכם יש להגיד בנושא.

6 מחשבות על “אנשי DBA

  1. אבי

    אהלן!
    התחלתי להתעסק עכשיו באופן כבד ב MySql,
    תוכל לתת לי המלצות כדי ללמוד באמת על DBA?
    ציינת שהוא לא באמת תומך בצירופים, תוכל לתת לי קישור לזה?
    תוכל גם לתת לי קישור לגבי מה שזרקת על Foreign keys?
    תודה!

    1. ik_5 מאת

      הוא כן תומך, רק לא בצורה האופטימלית והטובה ביותר.
      https://dev.mysql.com/doc/refman/5.1/en/nested-loop-joins.html

      לגבי foreign keys, אם תעשה explain עליהם, ואותו הדבר בלי להשתמש בהם, אתה תראה איך המידע נלקח ושהוא מוסיף עוד סיבוכיות להבאת הנתונים. איש DBA פשוט הסביר לי את הסיבה, ודווקא על זה לא מצאתי חומר בעצמי.

  2. queency

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

    דרך אגב אני מכיר מתמתיקאי (בתואר) שבחיינו דווקא נמאס לו והלך ללמוד "מהנדס קונסטרוקציה"
    עולם משוגע
    queency

  3. צפריר כהן

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

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

    1. ik_5 מאת

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

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s