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