@avi-rz כתב בהדברים החשובים לריבוי שורות ב mySql | והאם seqelize אכן מתאים?:
@ivrtikshoret כתב בהדברים החשובים לריבוי שורות ב mySql | והאם seqelize אכן מתאים?:
תגיד אני ינסה להסביר יותר בהרחבה איך עובד אינדקסים עד כמה שאני הבנתי.
תודה על המענה המקצועי,
אשמח, לדעת או להפנות אותי, ניסיתי קצת לקרוא על העומק של אינדקסים, וכולם מדברים על מפתח (ID) בעיקר, עכשיו אני באמצע לעבור על זה נושאים מתקדמים ב MySQL: חלק ג׳ – מנועי אחסון, ומבנה האינדקסים דןןקא שם אני אוחז עכשיו בפיצול של ה Clustered Index, או Primary Index
אשמח לדעת את נקודת הליבה של האינדקס.
איך שהבנתי ביחס לשאילתה זה בwhere רגיל, רק הנפק"מ זה איך שהמנוע (הבלתי נראה) שולף את הנתונים, נכון?
נ.ב. התעסקתי הרבה עם תוכנה ונתונים, אך בלי להבין לעומק את הנקודה הזאת, (וכמו"כ עוד כמה דברים, כמו ש @dovid העיר לי בעבר). - שוב, תודה לכל החברים ולמנהל היקר על הפורום המבורך!
תאמת שעכשיו ערב פסח וקצת קשה להאריך,
כעיקרון תחשוב על זה בצורה הבאה:
יש לך טבלה של ילדים וטבלה של ציונים של התלמידים,
עכשיו אתה רוצה לקבל את כל הציונים של תלמיד מסויים כעיקרון המנוע אמור היה לעבור על כל השורות בטבלה ולראות איזה שורה שייך לתלמיד הזה, תחשוב שיש לך מיליון תלמידים בבית ספר כל תלמיד למד בבית ספר עשרים שנה יוצא שיש לו איזה לפחות 100 ציונים
במצב כזה היית אמור לעבור על 100,000,000 שורות
לכן נוצר אינדקסים אינדקס זה בעצם טבלה נוספת שאתה לא רואה שהוא מייפה את כל התלמידים שלך כלומר עם אתה תעשה בטבלת הציונים אינדקס על העמודה תלמיד הוא יבדוק בטבלה נפרדת באיזה מיקומים בטבלת הציונים יש שורות ששייכות לתלמיד הזה, ועכשיו הוא יכול מיד להוציא את כל השורות הרלוונטיות מבלי לעבור על כל ה 100,000,000 שורות
הוא עבר רק על טבלה אחת שיש בה מיליון שורות במקום לעבור על טבלה של מאה מיליון,
החיסרון של זה לפעמים הוא שבכל יצירה של שורה הוא צריך גם לעדכן את הטבלה של האינדקס,
בנוסף יכול להיות שתעשה אינדקסים מיותרים לדוגמא פה אם תעשה אינדקס שיכלול גם את העמודה תלמיד וגם את העמודה ציון לא הועלת כלום.