![]() |
יעילות מסדי נתונים, SQL | MYSQL | ACCESS
שאלה -
אני עובד על אפליקציה גדולה ורצינית בימים אלו, והיא מבצעת תיעוד לכל פעולה. התיעוד כולל שמירה של שורה עם נתונים של ID, מחרוזת בת 170 תווים, TIMESTAMP, שני שדות INT, עם 10 תווים כל אחד, וTINYINT בודד של ספרה אחת. המערכת מבצעת בערך 200,000 - 1,000,000 שורות בחודש. איזו שיטת אחסון דחוסה יותר, אמינה יותר, זולה יותר וכדאית יותר לאחסון הנתונים הנ"ל? חשוב לומר שאצטרך לאפשר גישה לנתונים אלו ע"פ דרישה. בתודה מראש, אור. |
בשביל מה אתה צריך את התיעוד הזה ?
אתה גוזר ממנו נתונים אחר כך ? אתה יכול לשמור עותק לוקאלי ברמה חודשית \ שבועית וכד' ולרוקן את הטבלה |
ציטוט:
המקס' שאני יכול לרוקן זה עד 3 חודשים אחורה. אבל עדיין מדובר בעד 3מליון רשומות במסד. |
אתה מתכוון שהשליפה לדעתך תהיה כבדה מדי בעבור השרת? אם כן, אתה יכול לנסות לחלק את זה לכמה טבלאות עם PREFIX שונה, למשל - כל השורות בעלות ה-ID מ-1 ועד 10000 יהיו בטבלה first_table, כל השורות בעלות ה-ID מ-10001 ועד 20000 יהיו בטבלה second_table ואז בהתאמה, לשלוף לפי ה-ID שקיבלת: אם קיבלת מספר מ-1 עד 10000 תשלוף מהטבלה השניה וכו' וכו'. זה כמובן דורש עבודה מעצבנת בכל מיני מקומות של התאמת השאילתות..
|
סולטן, אין שום סיבה לעשות דבר כזה.
אור, הDB מתוכנן לעבוד מול טבלאות גדולות, גם כאלה וגם יותר. אני ממליץ לך לכתוב את הטבלה בצורה נכונה (indexים מתאימים וdata type נכון לכל דבר). אין שום סיבה שזה לא יעבוד טוב. |
ציטוט:
אין לי בעיה לפתח את מערכת התיעוד הזו בASP או PHP. |
מה הכוונה תופס פחות נפח. זה לא משנה אם תפתח בASP או בPHP, זה הכל מול מסד נתונים חיצוני הרי.
לגבי ההשוואה בין Access לMySQL אתה לא יכול לדעת בלי להריץ. תפתח מסד עם טבלה כמו שלך ותכניס מלא נתונים ותראה מה קורה. מה שכן, לדעתי MySQL אמור לתפקד יותר טוב מול מסד גדול. אם אתה רוצה בASP אז עדיף SQL Server. |
ציטוט:
|
ציטוט:
|
ORDER BY RAND() זו פקודה ממש ממש לא חכמה. אבל זו בכלל לא הבקשה פה.
|
כל הזמנים הם GMT +2. הזמן כעת הוא 16:21. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ