mySQL ורשומות זמניות

ilsites

New member
mySQL ורשומות זמניות

אני מפתח סוג של צ'אט שיהיה מבוסס מסד נתונים. עכשיו אין טעם לשמור את כל ההודעות כל הזמן ולכן יש צורך למחוק אותן מדי פעם. אני מכיר אפשרות ליצור טבלה זמנית, אבל השאלה היא האם ישנה אפשרות ליצור רשומה זמנית שתמחק אחרי X זמן אוטומטית? לחילופין, במידה וזה בלתי אפשרי אז באיזו צורה אתם ממליצים לי להפטר מההודעות המיותרות?
 

itaym02

New member
טבלה זמנית לא תעזור לך. הזמניות שלה זה מרגע

הדלקת השרת ועד כיבויו. זאת לא הזמניות שאתה רוצה. אתה צריך לממש LastIn LastOut שיחזיק מספר בודד של פריטים (נניח 100). אפשר בעזרת שאילתה עם limit של 100 ורק עם id גדול מהid אחרון ששלפת. אם אתה בmysql5 אתה יכול לבנות טריגר שינקה לך את הטבלה הזאת בזמן הראוי, אחרת-תחשוב כבר על משהו. את הצ'אט המלא, אתה יכול לשמור בצד לקוח, אפילו על עוגייה, אלה אם אתה רוצה תיעוד מלא של מה שנאמר, ואז אין לך בררה אלה לשמור הכל בDB.
 

ilsites

New member
טבלה זמנית לא תעזור לי זה בטוח כי אני צריך

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

ilsites

New member
יש פה אפשרות ל-stored procedures

אבל משום מה אני לא מצליח להפעיל אותה ב- task schedule
 

itaym02

New member
כנעט- בעוגייה תשמור את כל ההודעות בצ'אט הנוכח

בDB אתה שומר רק את ה100 הודעות אחרונות (שזה מה שרצית שיהיה נגיש לכולם. את תהליך הניקוי תפעיל כל פעם שיש לך select שמחזיר יותר מ100 רשומות. על כמה משתמשים בו זמנית אתה חושב?
 

ilsites

New member
הרבה הרבה..

בסוף הוחלט לעשות ככה: להקיץ מזימה מתוזמנת פעם בשעה על השרת שתריץ קובץ VBS שיעשה סוקט לקובץ ASP שיקרא לפרוצדורה שמוחקת כל הודעה שנכתבה לפני יותר מ-60 שניות. אני לא רוצה שהמחיקה תהיה תלויה בהוספת הודעות נוספות.. במיוחד בגלל שאני רוצה להוריד כמה שיותר עומס ממסד הנתונים ובמיוחד ה-IIS כי הוא טוחן ברמות. מתוכנן על כ-100 יוזרים בו זמנית בתור התחלה וזה עלול לעלות ללא כל בעיה לכמה מאות תוך מס' שבועות, במיוחד בחופש הגדול. זה אתר שבכל מקרה מחזיק יותר מ-1000 יוזרים ONLINE כל רוב שעות היום
 
למעלה