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

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

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

אינדקסים ב SQL

מתוזמן נעוץ נעול הועבר תכנות
11 פוסטים 3 כותבים 435 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #2

    בגלל שSQL זה טכנולוגיה בוגרת ועדיין רלוונטית, זה נושא שיש עליו המון חומר גם בעברית,
    אני מביא לך כמה לינקים רלוונטיים לשאלה:
    http://blogs.microsoft.co.il/gerireshef/2010/11/29/אינדקסים-וספריית-אוניברסיטת-חיפה/
    https://internet-israel.com/מדריכים/mysql-מדריכים/אופטימיזציה-בסיסית-של-mysql/
    http://www.softwarearchiblog.com/2018/08/mysql-storage-engines.html

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

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

    WWWW תגובה 1 תגובה אחרונה
    4
    • WWWW מנותק
      WWWW מנותק
      WWW
      השיב לdovid ב נערך לאחרונה על ידי
      #3

      @dovid

      1. תודה רבה!

      2. הקישור הראשון זה תאוריה יותר, שכבר קראתי הרבה...
        הקישור השני זה נחמד, את רוב הכללים כבר ידעתי, אבל הוא חידש לי כמה דברים.
        הקישור השלישי נשמע לי עמוק מידי, מה גם שאני לא יודע אם זה תקף ל MSSQL.

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

      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

      dovidD תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        השיב לWWW ב נערך לאחרונה על ידי
        #4

        @WWW הלינק הראשון הכי חשוב וכל השאר מיותר.
        עם קצת מחשבה תבין לבד את כל הכללים.
        אין שום הבדל בין MSSQL ובין MYSQL ברמת התיאוריה, וברמה המעשית זה פרטים שוליים שלא נתקלים בהם כל יום.

        המשפט: "מתי להשתמש באינדקס, איזה שדות לכלול וכו'." מחייב שלא הבנת או לא קישרת היטב את התיאוריה למעשה, כי זה אמור להיות פשוט.
        את השאלה של שדה תנאי ומין לא הבנתי, מה זה שדה תנאי? ושדה מיון?

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

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

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

          אוי @dovid מה אני אגיד לך...
          לא כולם חכמים כמוך...
          אין לי כח לעשות פה לומדות ולהבין דבר מתוך דבר, וזה לא בא לי בקלות 😞

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

          שדה תנאי התכוונתי לשדה שבד"כ מסננים לפי זה.
          ושדה מיון התכוונתי שדה שבד"כ ממיינים את התוצאות לפי השדה הזה (טקסט).

          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

            @WWW בקשר לשדה תנאי ומיון, בטוח לשניהם צריך לעשות.
            מתי לעשות ומה?
            בגדול,כל שדה/קבוצת שדות, שממיינים או מסננים על פיהם לעיתים קרובות, והחיפוש/מיון בו מתבסס על מתחיל ב נגמר ב וק"ו שווה ל, כדאי לעשות אינדקס.
            קבוצת שדות הכונה למשל שבפעמים שמחפשים/מסננים על פיהם כל הקבוצה תופיע בתנאי או במיון.

            אני בכל אופן הרצתי חיפוש באינטרנט "sql index rule of thumb"
            אנשים מציינים את הדברים הבאים:

            • בד"כ אינדקס נותן תועלת משמעותית רק כשמתשאלים 1. אחוז קטן מהתוצאות (10% ופחות מגודל הטבלה) 2. הטבלה גדולה מאוד 3. יש שונות גבוהה בערכים המאונדקסים (למשל זכר נקבה זה שתי ערכים אז זו שונות נמוכה מאוד מאוד).
            • לא ליצור אינדקס אם לא נראית או צפויה בעיה (כלומר קודם שיהיה לאט ואז נדבר - אז גם אפשר לבדוק מייד אם הייתה התייעלות)
            • הכתיבות לטבלה וסבלים מביצועים נמוכים ככל שיש יותר אינדקסים. במיוחד יש לשקול זאת בטבלה עם ריבוי כתיבות.

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

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

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

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

              @dovid תודה רבה, לזה חיכיתי!

              כעת לשאלה שלי:

              • יש לי טבלה שאמורה להיות כבדה, נגיד 50,000 רשומות, ועיקר האפליקציה זה קריאה מהטבלה הזאת.
                יש בטבלה כ 15 שדות.
              • עדכון לטבלה מתבצע רק ע"י המנהל, וזה בד"כ בעיקר הוספה של הרבה רשומות בבת אחת (ע"י סקריפט שמכניס אחד אחרי השני לאחר בדיקה).
              • כמעט תמיד השאילתא תריץ תנאי ששדה 'א' (INT) שווה X. וזה אמור לשלוף כ 3000 רשומות בתנאי הזה (לרוב השאילתה מוגבלת ל TOP 100 רשימות, אבל הבנתי שזה לא עוזר כלום).
              • לרוב המיון יהיה לפי ביטוי מורכב (זו שאלה בפנ"ע אם זה כדאי) שזה ['שם משפחה' + ' ' + 'שם פרטי'].
              • אני נותן אופציה ללקוח למיין לפי כל שדה בטבלה, וכן לסנן לפי כל שדה כולל סינון מקונן (בד"כ הסינון 'שווה').
              • בינתיים אין אינדקסים (חוץ ממפתח ראשי) ואני לא רואה איטיות (יש כ3000 רשומות כרגע בטבלה).

              מה היית ממליץ לעשות?

              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

              clickoneC תגובה 1 תגובה אחרונה
              0
              • clickoneC מנותק
                clickoneC מנותק
                clickone
                השיב לWWW ב נערך לאחרונה על ידי
                #8

                @WWW ב3000 אתה לא אמור להיות באיטיות

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

                אין טסט כמו פרודקשן.

                המייל שלי urivpn@gmail.com

                WWWW תגובה 1 תגובה אחרונה
                1
                • WWWW מנותק
                  WWWW מנותק
                  WWW
                  השיב לclickone ב נערך לאחרונה על ידי
                  #9

                  @clickone אמר באינדקסים ב SQL:

                  אם הצפי ל30 או 300 אלף רחוק אז לגמרי הייתי ממתין
                  אם הוא ממש קרוב אז שווה לחשוב על זה כבר עכשיו

                  כפי שכתבתי הטבלה אמורה לגדול עד ל 50,000 נגיד.

                  WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                  dovidD תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לWWW ב נערך לאחרונה על ידי dovid
                    #10

                    @WWW עדיף שתשתף אותנו כשזה כבר יהיה מספיק גדול למדידות (נגיד ב10K).
                    אין לך מה להפסיד מלחכות כי אינדקסים זה שקוף לגמרי מבחינת התנהגות המסד והתוכנה שלך.

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

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

                    WWWW תגובה 1 תגובה אחרונה
                    2
                    • WWWW מנותק
                      WWWW מנותק
                      WWW
                      השיב לdovid ב נערך לאחרונה על ידי
                      #11

                      @dovid אמר באינדקסים ב SQL:

                      @WWW עדיף שתשתף אותנו כשזה כבר יהיה מספיק גדול למדידות (נגיד ב10K).

                      זה יקח כמה שנים 🙂

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

                      לא הבנתי.

                      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

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

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

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