עבור לתוכן

מסד נתונים - איך מטפלים במסד נתונים גדול מבחינת אינדקס?

Featured Replies

פורסם

אני בונה מסד נתונם ומערכת שתכניס אליו נתונים.

אני רוצה שיהיה לי תא שהערך שלו יהיה מיוחד.. כלומר לעשות איזה תא, לקרוא לו ID ולהגדיר לו שהוא יעלה ב1 כל פעם (אני משתמש ב SQL SERVER EXPRESS לצורך העניין)

עד פה אין בעיה (האמת היא שבכלל אין בעיה אבל זאת שאלה יותר תאורטית)

]אני לא מכניס "הרבה" שורות והבנתי שהגודל המקסימלי של int ב SQL SERVER EXPRESS יכול להגיע ל 2147483647 אז אני לא אגיע לזה גם עוד 1000 שנים,

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

איך מטפלים בזה? חשבתי לעשות תא ייחודי שיהיה לפי תאריך ושעה (datetime) ויש שם דיוק של אלפיות השניה אז זה כנראה יהיה מיוחד.. אבל מעניין אותי מה באמת עושים תוכניתנים (לא חובבים כמוני)

איתי

פורסם

פשוט מאוד - משתמשים ב-bigint שהוא 64 ביט במקום int שהוא רק 32 ביט.

פורסם
  • מחבר

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

פורסם

הגבול של המספר הזה הוא 9,223,372,036,854,775,807. זה הרבה מאוד. מאוד מאוד. לשם השוואה, מספר הדפים שמאונדקסים באתרי חיפוש זה כמה עשרות מיליארדים. אם היית מחזיק כמות מידע כזו על כוננים קשיחים, היית צריך כמה מיליוני כוננים של 4TB רק בשביל להחזיק את האינדקסים. עד שנגיע לזמן שבו יהיה ריאלי לחשוב על הגבול של המספר הזה, המחשבים יתקדמו ואני בטוח שלמסדי נתונים יהיו טיפוסי מספרים חדשים בגודל 128 ביט.

פורסם

ניתן גם להגדיר מפתח מרוכב (מספר עמודות).

פורסם
  • מחבר

תודה על התשובות :)

אני חושב שאני אלך על bigint

פורסם

בכל מקרה מבחינה תאורטית נכון לתכנת לפי הצרכים.

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים