![]() |
שיקול יעילות במסדים...
אהלן
אני עושה מערכת שפותחת פורומים של IPB אוטומטי לאנשים זה אומר שכל מי שנירשם יהיה לו פורום יש 2 אופציות לעשות את זה לכל מי שנירשם נוצר מסד(בדקתי והמסד הראשוני של המערכת שוקל 450 קילו בייט) או לאחד את כל הפורומים למסד 1 , מה שלדעתי יצור קצת עומס כיוון שהרי כל פורום מציג את כל ההודעות שבתוכו זה יהיה "חולני" שהוא ירוץ על מסד שמכיל בתוכו עשרות פורומים ... מה דעתכם?? הייתרון בשיטה הראשונה זה שכל פורום יריץ רק את הפורום שלו,וכך יהיה חיסכון בשאילתות החיסרון הוא שלכל משתמש שנירשם הוא כבר תופס לי 450 קילו בייט בשיטה השניה זה הפוך-ייתרון אני חוסך את הנפח של המסד הראשוני לכל בן אדם והחיסרון שכל שאילתה לדעתי תיהיה ארוכה יותר אשמח לדעות |
אם אתה מצפה שכל פורום שנפתח די יצליח אז ה-450 ק"ב הראשוניים האלה לא באמת משנים.. הבעיה תהיה עם חשבונות לא פעילים (שבטח יהיו יחסית הרבה כאלה)
עדיף לדעתי לפתוח לכל פורום בסיס נתונים חדש ולעשות שנגיד חשבונות שלא פעילים בכלל מעל זמן מסויים ימחקו + לנקות טיפה דברים שאתה לא צריך בקוד ובבסיסי נתונים כדי לחסוף מקום |
בוורדפרס MU זה פותח מסד חדש לכל בלוג שיוצרים,אז אני מניח שזה יותר יעיל כי המפתחים של וורדפרס הם בין הטובים בתחום
|
מסד חדש לכל פורום עדיף..
|
אותו מסד, אותם טבלאות רק עם PREFIX אחר
דרך אגב יש לי מערכת כזאת מוכנה איפהשהו.. |
ציטוט:
אשמח להסבר טיפה יותר מפורט |
ניצן מתכוון שלכל הפורומים יהיה את אותו המסד אבל נגיד לטבלאות שלי יקראו:
user1_table_name לטבלאות שלך יקראו user2_table_name וכו'. אני גם תומך בשיטה הזו. |
ציטוט:
ב IPB יש עשרות טבלאות בוא לצורך הדוגמא ניקח 4 טבלאות לדוגמא forum topic rep mem ולמסד שלי קוראים dabi_forum אז מה לעשות? שכל פעם שמשתמש חדש נירשם ואני רוצה לפתוח לו פורום אני יוסיף למסד עוד 4 טבלאות??? (זה אומר שבמציאות אם IPB מכילה 40 טבלאות אז לאחר כל הרשמה של משתמש אני מוסיף עוד 40 טבלאות ??) אם כן אז מה ההבדל בין זה לבין לפתוח מסד חדש |
ציטוט:
|
ציטוט:
אני רוצה לדעת מה ההבדל כי אני רוצה לעשות את זהבמערכות שונות |
אם אני לא טועה יותר יעיל לך כל פורום מסד חדש..
מבחינת משקל, נתונים, ביצועים ושיהיה לך יותר נוח.. תוכל לדעת מה שייך למה, מי למי וכו'.. כשזה יהיה עם prefix אחר לכל משתמש לפי דעתי זה יצור לך המון בלאגן, תחשוב שיש לך 50 משתמשים שרשומים למערכת שלך, 50 * 35 (נניח שיש 35 טבלאות ל- IPB ללא מודים ותוספות) = 1750 טבלאות. מה שאומר שאם תרצה לחפש משהו / לתקן / לשנות, יקח לך מלא זמן, עזוב שאתה יכול לחפש עם ctrl+f.. מעבר לכך הכל יהיה לך תקוע (בהנחה שיש לך מחשב ממוצע 1GB זיכרון), וזה יעלה יותר לאט וכו' וכו'.. בקיצור, אם אני הייתי עושה את זה, אני חושב שהייתי הולך על מסד לכל אחד. אבל זאת דעתי, אני חושב שתחכה עד שתקבל מספר תגובות ממספר אנשים ותעשה יתרונות מול חסרונות, תראה מה עדיף. |
ציטוט:
כמובן שבמידה ורוצים לשנות אפשר להריץ פונקציות PHP על כל הטבלאות אבל מה שכן זה הגודל הרב של מסד אחד שיש כמובן חברות איחסון שמגבילות את הנפח למסד נתונים אחד אשמח לשמוע מ nitsanbn תגובה על כך ועל מה ששאלתי עליו קודם |
ההבדל הוא שעבודה עם דטאבייס אחד הרבה יותר מהירה מעבודה עם כמה דטאבייסים
ומניסיון שלי עם המערכות פורומים האלה מסד עם 4700 טבלאות כאלו עובד הרבה יותר טוב מ47 מסדים עם 100 טבלאות בכל אחד בהצלחה |
עקרונית אני ממליץ לך לפצל את זה למסדים ואני אגיד לך למה :
אם תגיע לגודל גדול , תוכל לפצל את המסד נתונים לשרתים מבלי להתעסק בהגדרות מסובכות של PARTITIONS לפי טבלאות גדלי קבצים, אני לא זוכר בדיוק אם כל טבלה נרשמת בקובץ DATA נפרד שכל מסד בקובץ DATA נפרד גיבוי ושיחזור יהיה לך הרבה יותר קל לגבות כל מסד בנפרד (להריץ סקריפט שעובר על כל המסדים בשרת ומגבה אותם) מאשר לגבות מסד גדול (זה לא שאתה יכול לשחזר מסד של 3 גיגה דרך PHPMYADMIN) יש עוד המון סיבות שלא עולות לי לראש עכשיו אבל בעיקר סדר... שזה הדבר הכי חשוב. |
ציטוט:
בסופו של דבר לכל יוזר יהיה סאב דומיין עם המסד שלו ככה אני הבנתי... |
ציטוט:
ציטוט:
לכל יוזר יש מסד משלו |
באופן עקרוני אתה לא DBA שיכול להתעסק עם כמות ענקית של טבלאות , ולעשות PARTITIONS במידה שצריך ויעול של ה CONFים לרמה של צריכת זיכרון וגיבוי וכד'.
תעשה לכל יוזר מסד , ברגע שמחקת פורום תמחק גם את המסד שלו , תעשה לך סקריפט שמבצע את הפעולות הנדרשות ותגמור סיפור, יחסוך לך הרבה כאבי ראש בעתיד + אני לא בטוח שלעבוד עם מסד אחד זו הדרך הנכונה ביותר (ההבדל היחידי הוא כמות ה CONNECTIONS שתצטרך לפתוח במידה ותצטרך להציג מידע ביותר ממסד אחד - למרות שתמיד תוכל לעשות מעיין VIEW במסד שמציג מידע ממסדים אחרים ואז דרך הקוד של ה PHP אתה ניגש למסד אחד בלבד עם ה VIEW בתוכו) |
ציטוט:
כמובן שכל הפורומים יתבססו על אותם קבצים בידיוק רק שהמסדים יהיו שונים... מה שכן,האם יש דרך כלשהי לצמצם את גודל המסד הראשוני של IPB(כ 450 קילו בייט לפני שמישהו פירסם הודע שם) תודה |
450kb זה לא כזה הרבה, אני לא מכיר את המערכת של IPB מבפנים - לא יצא לי לעבוד איתה אני מאמין שיש שם כל מיני הגדרות למינהם שקשורים בתוכנה, אם בא לך להתעסק בזה
תבדוק איזה טבלאות תופסות מקום תבדוק אם הם חוזרות על עצמן , תעביר את כל הנתונים לקובץ ותקרא לו מכל ההתקנות של הפורומים ואז תוכל לחסוך כמה טבלאות בדרך אם תעשה חשבון 450 * 100 פורומים = 450 מגה, אם יהיה לך כמות כזאת אתה בכל מקרה תצטרך שרת פרטי ואז תוכל להגדיר מה שאתה רוצה ולא יגבילו אותך מבחינת גדלים של מסדים... תחשוב על זה ככה , שרת ממוצע עולה בערך 1000 שקל , אם האתר מכניס את ה 1000 + רווח של התעסקות אז שווה להחזיק את האתר , אם לא , תזרוק את הרעיון לפח. |
ציטוט:
בכל מקרה אני מודה לך |
אגב מצאתי את הטבלה שלוקחת כ 350 מתוך 450 קילו בייט
היא זהה ולא משתנה בין כל פורום לפורום( הטבלה מכילה קוד HTML של הסקין מחולק לכמה עמודות ותאים) האם כדאי שכל פורם ופורום יקרא את הטבלה ממסד 1? ואז בעצם כל פורום יתחבר ל 2 מסדים ניפרדים? 1- מסד שיכיל את כל הפורום 2- מסד שיכיל רק את הטבלה של הסקין הזאת וככה אני יחסוך כ 350 קילו בייטל הרשמה |
איזה סקין של הניהול או של הפורום ?
תחשוב על זה ככה כל משתמש שיתחבר ייפתח לך חיבורים ל 2 מסדים עדיף לך לעשות את התוכן של הטבלה כקובץ שהוא SHARED בין כל הפורומים (או פשוט לכל פורום בנפרד - מה שנוח לך) ולחפש את המקום שקוראים לטבלה ולשנות את הפונקציה שתקרא לקובץ במקום לטבלה זה גם ככה משהו סטטי שלא משתנה, ככה שיהיה קריאה לקובץ + התחברות למסד לא שווה לך מבחינת משאבים לפתוח 2 חיבורים ל MYSQL בשביל DATA שהוא סטטי ובמיוחד שזה ה DATA היחידי שאתה לוקח ואין לך שאליתות נוספות לDB הנוסף |
איזה IPB אתה מריץ? אם אתה מריץ את הישנה אז הטמפלט מאוחסן גם על גבי קבצים וגם בדטאבייס.. כל מה שאתה צריך זה לשפץ את הקובץ שטוען את הסקין שיטען אותו מהקבצים בלבד ואז יש לך סקין אחיד לכולם ואתה יכול להתפטר מהטבלאות האלה בדטאבייס
מה שכן.. זאת מערכת סבוכה וחבל לעשות את זה לדעתי שכן עוד 350KB בדטאביייס לא יעשו את ההבדל - כי ממילא לא ניגשים אליהם.. |
ציטוט:
ככה שבעבור 100 יוזרים יילך לו 450 מגה (בערך) רק בשביל המקום של הטבלאות, מיותר לחלוטין. |
ציטוט:
100 יוזרים * 350KB לטבלה של העיצובים = 35000KB ~~ 35MB בערך 35MB (יותר נכון 34~) "יילכו לו" על הטבלאות של העיצובים 450>>35 |
הכפלתי בטעות פעמיים ככה זה כשרואים כל היום מספרים..
בכל מקרה , 35 מגה זה ממש לא רציני. לפותח האשכול עבור 35 מגה , אל תתאמץ אפילו... |
כל הזמנים הם GMT +2. הזמן כעת הוא 00:36. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ