שלח תשובה

זירת השאלות

686
צפיות
4
תשובות

שאלה דחופה בקשר ל db

,‏ 4 בפברואר, 2010

הי ,
אם יש לי 1000 משתמשים ששולחים הודעות מאחד לשני
ואני צריך לשמור את ההודעות האלו ב db
ואני יודע שכל משתמש שולח בממוצע 100 הודעות בחודש
כלומר סכ"ה 100 אלף הודעות כל חודש
האם לשמור את כל הודעות בטבלה אחת(db אחד) שיש בה מאות אלפי שורות
או לפתוח עבור כל משתמש קובץ db נפרד (ואז יש לי 1000 קבצים(db) ורק עשרות שורות בכל קובץ)
או להשתמש בdb אחד ולפתוח עבור כל משתמש טבלה אחת
בקיצור , מה הפיתרון הכי טוב?
תודה.

תגיות:

4 תשובות

  1. mc2win הגיב:

    בקשר לDB
    אני מעדיף שתשמור את הDB כמו שהוא
    כי יהיה לך מסובך כל פעם לפתוח DB חדש לכל משתמש

  2. חד משמעית
    בשום אופן לא לפתוח בסיסים נפרדים, נהל את הכל בטבלה אחת יעילה ונכונה.

    במקרה שתגיע לכמויות מידע ושאילתות גדולות, יתכן שתצטרך לעבור לבסיס קצת יותר חזק מאקסס כמו MSSQL

    אקסס לפי הנתונים הרשמיים תומך עד 2 גיגה מידע ו-5 משתמשים מחוברים בו זמנית (הוא לא נבנה בצורה ייעודית לאינטרנט אלא לאפליקציות מקומיות/פנימיות)


    אלי ענתבי

  3. osnat הגיב:

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

  4. רק החיבור לקובץ לוקחת יותר זמן…
    הוא לא חייב לקרוא את כל הנתונים, משפט select נכון יחזיר רק את הנתונים שאת מחפשת… אם השאילתא בנויה נכון ויש אינדקסים נכונים, זה לא יחזור איטי יותר מאשר בחלוקה לטבלאות/קבצים.

    בפרט שחלוקה כזו תמנע אפשרות להרצת חיפושים יעילים ותחזוקה טובה בהמשך.

    ובכל אופן – ברגע שאת מגיעה למימדים של קובץ אקסס שהשאילתא כבדה מידי – הפיתרון הנכון הוא להחליף תשתית ולא לחלק את אותה הטבלה…

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


    אלי ענתבי

שלח תשובה