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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. מתי להגדיר אינדקס במסד נתונים

מתי להגדיר אינדקס במסד נתונים

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 6 כותבים 265 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מוטי מןמ מנותק
    מוטי מןמ מנותק
    מוטי מן
    כתב ב נערך לאחרונה על ידי מוטי מן
    #1

    איך לדעת על איזה שדות כדאי להגדיר אינדקס? אני משתמש בmysql.

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

    אשמח למידע
    (יש לי מסד נתונים קיים שהתחיל לגדול, והבנתי שכדאי לי למטב אותו בשביל לייעל את הביצועים)

    אבייא תגובה 1 תגובה אחרונה
    0
    • אבייא מנותק
      אבייא מנותק
      אביי
      השיב למוטי מן ב נערך לאחרונה על ידי אביי
      #2

      @מוטי-מן אני לא יודע אם יש בזה כללים ברורים,

      אבל אני עושה אינדקס בד"כ על שדות שאני משתמש בהם הרבה בLEFT JOIN, ORDER, GROUP וכמובן WHERE, אני לא עושה את זה תמיד, אלא רק שדות שמשמשים בכמה שאילתות שמתבצעות בתדירות,

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

      לגבי אינדקסים על שדות בוליאנים, אני לא יודע,

      ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
      הלינקיה שלי https://abaye.co/link.html

      תגובה 1 תגובה אחרונה
      1
      • yossizY מחובר
        yossizY מחובר
        yossiz
        כתב ב נערך לאחרונה על ידי
        #3

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

        • שאילתה שמחזירה את רוב שורות הטבלה (גם עם אינדקס אתה בכל מקרה קורא את רוב הטבלה)
        • שאילתה שמחזירה כמה שורות לפי מפתח ראשי עם WHERE על עמודה נוספת (גם בלי אינדקס על העמודה המסננת, שליפת שורה לפי מפתח ראשי הוא מהיר)

        אני ממליץ בשלב הזה לטפל נקודתית בשאילתות שאתה רואה שהם איטיים, ולבדוק אם אפשר לשפר אותם על ידי אינדקס ולא סתם לחפש ליצור אינדקסים
        לפעמים AI מצליח לענות תשובה נכונה אם אתה שואל אותו "איזה אינדקס כדאי לעשות לשפר את הביצועים של שאילתה זו"

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה
        6
        • yossizY מחובר
          yossizY מחובר
          yossiz
          כתב ב נערך לאחרונה על ידי
          #4

          לגבי אינדקס על שדה בוליאני: זה כדאי רק במקרה שהסינון על העמודה יחזיר רק מיעוט מהשורות (רוב המוחלט של השורות הוא true או false) וכדאי לאנדקס רק השורות עם הערך הפחות נפוץ (true או false), דהיינו להוסיף where לפקודה של יצירת האינדקס
          עיין https://stackoverflow.com/a/42972924

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          אבייא תגובה 1 תגובה אחרונה
          1
          • אבייא מנותק
            אבייא מנותק
            אביי
            השיב לyossiz ב נערך לאחרונה על ידי אביי
            #5

            @yossiz כתב במתי להגדיר אינדקס במסד נתונים:

            דהיינו להוסיף where לפקודה של יצירת האינדקס

            טוב לדעת, לא ידעתי שאפשרי,
            (אני בד"כ לא מאנדקס אותם בכלל, כי זה כמעט תמיד נוטה לצד הtrue)

            ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
            הלינקיה שלי https://abaye.co/link.html

            תגובה 1 תגובה אחרונה
            0
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              נדיר שיאנדקסו שדה בוליאני בפני עצמו, מהסיבה ש@yossiz הזכיר,
              אבל שכיח שהשדה הוא חלק מאינדקס המורכב מכמה שדות.
              אינדקס מורכב זה כמו אינדקס רגיל אבל מכמה שדות יחד, וזה מועיל בעיקר לשאילתה בה הwhere מתייחס אל שדות אלו יחד בand.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              0
              • Aharon 0A מנותק
                Aharon 0A מנותק
                Aharon 0
                כתב ב נערך לאחרונה על ידי
                #7

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

                תגובה 1 תגובה אחרונה
                0
                • nigunN מנותק
                  nigunN מנותק
                  nigun
                  כתב ב נערך לאחרונה על ידי
                  #8

                  מייל: nigun@duck.com

                  תגובה 1 תגובה אחרונה
                  3

                  בא תתחבר לדף היומי!
                  • התחברות

                  • אין לך חשבון עדיין? הרשמה

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