MariaDB למפתחי .NET ובכלל

15 באוקטובר 2012

אין תגובות
על MySQL הוותיק והפופולארי מן הסתם כולם שמעו, וחלק אפילו משתמשים או השתמשו בעבר. מי שלא – כדאי תמיד להכיר.
עם עליית הפופולאריות שלו נתקלו המשתמשים בבעיות Scaling ואחרות שהגירסא הרשמית לא תמיד ענתה עליהם, כל מיני משתמשים התחילו לפתח פאצ'ים עם שיפורי ביצועים ויכולת. זה התחיל בעיקר עם Google ועם Facebook Patch והמשיך עם הפצות בינאריות של ממש.
 
בניגוד לשאר תואמי-MySQL (למשל Percona Server) שמגיעים בגירסאות לינוקס בלבד, MariaDB מגיע גם עם MSI להתקנה פשוטה על Windows לסוגיו, וגם עם סדרה ארוכה של תיקונים שמטרתן לעבוד טוב יותר ולנצל את מלוא הכח של מערכת ההפעלה הזו.
 
בצד האפליקציה אין הבדל: ה-Connector של MySQL לסביבת NET. ולקוחות גרפיים יעבדו עם כל התואמים ללא שינוי בקוד, כשכמובן שאפשר להתחבר גם לשרתי Linux וגם לשרתי Windows.
 
נקודת המוצא היא פשוט להחליף את MySQL ב-MariaDB. עוצרים את השירות הישן, מגדירים את החדש לאותה תיקיה של הישן ומפעילים אותו.
 
כשמתקינים את MariaDB מהקופסא הוא מגיע עם קובץ הגדרות (my.ini) מוצלח בהרבה מזה של ההפצה הרשמית, ועם רשימה ארוכה של שיפורים, כשהחלק שמעניין אותנו הוא בעיקר "מתחת למכסה המנוע", שגורם לשאילתות שאנחנו מריצים פשוט לעבוד יותר מהר ועם פחות נעילות. בין השאר הכניסו שם שיפורים ל-Optimizer, שמשפרים סוגים מסויימים של שליפות במאות ואף אלפי אחוזים.
בין השאר הוכנסו השיפורים הבאים בתחום הביצועים:
 
– שיפורי ביצועים ב-Subqueries שאפשר למדוד בעשרות ומאות אחוזים (במיוחד כשיש אינדקסים נכונים), ו-devired queries.
– שיפורי ביצועים בתחום של רפליקציה (group commit).
– שיפורים בתחום I/O על Windows.
– ניהול Threadים נכון יותר ושימוש חוזר (בעיקר באפליקציות שניטרלו Connection Pooling בצד האפליקציה).
– שיפורים בטבלאות זיכרון (Heap) – הרחבה בהמשך.
 
המשמעות על בסיס הנתונים של ערוץ 7 למשל, לאחר התאמות באינדקסים ובשליפות לסביבה החדשה הייתה כ-70% ירידה ממוצעת במדדי ה-CPU וה-I/O של המכונות, וזה בשינוי פשוט יחסית שחטמעתו ארכה פחות משבוע (אם כי כמובן, אחרי כל עדכון גירסא, צריך היה לבדוק מה השתפר ואם יש ירידה בביצועים של שליפות אחרות).
 
 אחת הפונקציות המעניינות של MySQL בכלל ושל MariaDB גם, היא היכולת להשתמש בטבלה זמנית, שיושבת בזיכרון, ותימחק עם כיבוי השרת, כך ניתן להשתמש בפונקציות של בסיס נתונים, בלי לבזבז I/O יקר לכתיבה לדיסק (ותוך כמובן לקיחת הסיכון לאובדן המידע במקרה של קריסה). ב-MariaDB בגירסא הבאה הולכים לשפר אותן כדי שיהיו טבלאות יותר אמיתיות ועם פחות מגבלות. ייתרון נוסף – הטבלאות הזמניות של המערכת (שנוצרות תוך כדי ביצוע שאילתות) עובדות עם הפורמט הזה שהוא מהיר בהרבה ביחס לזה של MySQL המקורי.
 
 
אין פה הרבה מה לנסות וכמובן שגם רשיון לא צריך, פשוט להוריד את הגירסא האחרונה שלהם ולהתחיל לשחק איתה. היא אפילו מגיעה עם GUI נחמד (למרות שאני מעדיף את MySQL Workbench).
 
 
בהצלחה!
 
משה. 
 
 
______________
לא עסקתי פה באפשרויות חדשות שהם מציעים ולא נתמכות ב-MySQL, כי הדגש שלי כאן בבלוג הוא ביצועים ולא אלו.
 
 
הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *