Tuesday, October 16, 2012

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

על 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 של המכונות, וזה בשינוי פשוט יחסית שחטמעתו ארכה פחות משבוע (אם כי כמובן, אחרי כל עדכון גירסא, צריך היה לבדוק מה השתפר ואם יש ירידה בביצועים של שליפות אחרות).

Read more: MariaDB
QR: Inline image 1

Posted via email from Jasper-Net