MySQL הינו בסיס נתונים מבוסס קוד פתוח הזוכה לפופולריות רבה. עם רכישת חברת MySQL AB השבדית ע"י חברת סאן מיקרוסיסטמס זכה המוצר לחשיפה רבה יותר, בין השאר – בישראל.
ביוזמתו של אדי רזניק מחברת סאן מיקרוסיסטמס ישראל, נפתחו מפגשי משתמשי MySQL בארץ.
מפגשים אלו מקובלים בעולם ומטרתם להעשיר את קהילת המשתמשים, המפתחים, המנהלים והיזמים. במסגרת המפגשים נערכות הרצאות הפתוחות לקהל הרחב.
בינואר נפתח המפגש הראשון במשרדי סאן מיקרוסיסטמס בהרצליה, ובמרץ נערך המפגש השני במשרדי אינטרביט במתחם הבורסה ברמת גן.
אל מפגש זה הגיע קהל מגוון: אנשי בסיסי נתונים, מפתחים, מנהלי פרוייקטים ויזמים. לאחר חצי שעה של היכרויות, נפתחו ההרצאות.
את ההרצאה הראשונה ערך עירד דויטש מחברת Veracity אשר מספקת שירותי Professional services ללקוחותיה, ומתמחה בעיקר בתחום תשתיות תוכנה – סיסטם, בסיסי נתונים, אופטימיזציות וכיו"ב. כמו כן מפתחת החברה כלים לניהול וניטור של בסיסי נתונים.
עירד הציג "סיפורי הצלחה" של לקוחות החברה.
להלן תיאור של אחד מסיפורי הצלחה אלו:
בחברת פיתוח תוכנה למגזר הפיננסי המבצעת ולידציה ואישור עסקאות אשראי ואיתור הונאות, שנתקלה בבעיות ביצועים ואשר נדרשה להזרמת מידע למערכת צד שלישי של לקוח (שרת אורקל), הוצעו מספר פתרונות. בין הפתרונות: העברת תהליכים קטנים צורכי IO לדיסק RAM (כך, ע"י קונפיגורציה מתאימה הועברו תהליכי מיון שבוצעו על דיסק – לזכרון). כמו כן נכתבה שכבת parser + analyzer עבור ה-binary logs, שאפשרה הזרמת העדכונים מ-MySQL לשרתים אחרים, ובהם אורקל.
פיתוחים שכאלה מתאפשרים הודות לסגנון הפתוח של MySQL המאפשר לכוונן בקלות יחסית את צורת פעולתו, והמזרים מידע בפורמטים מקובלים וקריאים.
עירד תיאר קצב התפתחות של חברות העובדות עם MySQL, ואשר מגיעות ל"תקרת זכוכית" של ביצועים. בהגען לשם שוקלות החברות לעבור לפתרונות אחרים, כמו אורקל. פעמים רבות, לדברי עירד, תקרת הזכוכית היא מדומה, ובעזרת רכישת ידע ניתן לעלות גבוה מעליה.
לאחריו הרצה שלומי נח, כותב מאמר זה. שלומי הוא עצמאי, מדריך את קורסי MySQL הרשמיים בישראל דרך חברת אינטרביט, מרכז ההדרכה המוסמך של MySQL בארץ. כמו כן הוא מספק יעוץ: תמיכה, ניתוח ואופטימיזציות של שרתי MySQL.
ההרצה עסקה בעקרונות אופטימיזציה של MyISAM ו-InnoDB. אלו הם שני המנועים העיקריים למימוש טבלאות הנמצאים כיום בשימוש. בהרצאה הוצג בקווים כלליים המבנה הפנימי של השניים, וההגיון המנחה בקביעת הפרמטרים.
ב- MyISAM הוצג מבנה הטבלה והאינדקסים המנותקים ממנה. דובר בזכרון המטמון של אינדקסים ב- MyISAM ובעייה ה- scalability שלו בעקבות נעליה מרכזית עליו. הוצגו פתרונות אפשריים לבעייה זו.
כמו כן תוארה קונפיגורציה המאפשרת concurrency גבוה יותר על טבלאות MyISAM.
ב- InnoDB נסקר בקצרה מבנה ה- Clustered index וחשיבותו המיוחדת של ה- Primary key.
תואר מנגנון המטמון של InnoDB, שבניגוד לזה של MyISAM הנסמך על זכרון המטמון של מערכת ההפעלה, מממש בעצמו המנגנון ו"מעדיף" לנטרל את מערכת ההפעלה.
תואר גם הקשר שבין מטמון הנתונים ורישומי הטרנזקציות, קשר הניתו לביטוי בשינוי פרמטרים בסיסיים.
לסיום הוצגו דרכים להקטין את מספר פעולות ה-I/O בטבלאות מבוססותInnoDB.
את ההרצאה השלישית נשא משה קפלן מחברת Rocketier בנושא sharding – ביזור הנתונים על פני בסיסי נתונים ושרתים שונים.
בהרצאתו הציג משה שחקנים גדולים המשתמשים ב- MySQL: אתרים כמו Facebook, YouTube, Flickr. כל אלה מחזיקים נפחים גדולים מאוד של מידע, ונדרשים לספק אותו בזמן מהיר.
משה הציג את בעיית זמן המהפכות: ככל שאנו מתקדמים טכנולוגית, כך הזמן הנדרש להטמעת טכנולוגיה הולך ומתקצר. הזמן שחלף לשם הטמעת הטלפונים הסלולריים ברקב האוכלוסייה קטן בהרבה מזה של הרדיו והטלפון הנייד. כך גם קצר זמן הטמעת האינטרנט. מהפכות חדשות זוכות לזמן קצר עוד יותר: זמן ההטמעה של Facebook היה כשנתיים בלבד! אתר לא מוכר יכול, בימינו, לזנק לרשימת 100 המובילים בתוך זמן מועט.
כדי להתמודד עם בעיית הצמיחה המהירה, ניתן להשתמש בפתקונות רבים. ביניהם, למשל, Oracle Rack, המבזר מידע על פני שרתים שונים באופן נוח לאפליקציה. טכנולוגיית Cloud computing, אשר כיום אמאזון מובילה, מאפשרת רכישה או ביטול רכישה של שרתים בלחיצת כפתור ובזמן תגובה של דקות ספורות. בדרך זו ניתן להקים עסק המשפע בקלות מתנודות ברשת.
בהרצאה הוצגו שיטות שונות למימוש sharding. כאלו המאפשרות גמישות רבה יותר 0 אך המציבות בעיות של נעילות ותחזוקה, כמו גם כאלה בהן הציפיות מוגדרות ונקבעות מראש, יכולת הגדילה מוגבלת בהן, אך הינן נוחות יותר לתחזוקה. הוצגו דוגמאות שימוש תוף דין בצרכי השחקנים הגדולים ברשת.
מפגשי משתמשי MySQL בארץ (MySQL Israel Users Group Meeting) ימשיכו להיערך באופן שוטף. המעוניינים להשתתף במפגשים אלו מוזמנים להירשם בלינק הבא: